我只想在充满黑色的矩形内显示我的字符串。谢谢您的帮助!如何在填充矩形内绘制字符串?
回答
给你:
public class MyPanel extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(10/*x*/, 10/*y*/, 80/*width*/, 30/*hight*/);
g.drawString("TextToDraw", 25/*x*/, 25/*y*/);
}
}
如果我有g.drawRect(x-50,y-50,60,25),你认为我的坐标应该用于drawString吗? – alicedimarco
Nvm! :D我知道了。非常感谢!我想通了:)哈哈我只是很难与我的drawString的坐标,所以它没有中心。 – alicedimarco
我很高兴它的工作:) – GETah
public class LabeledRectangle extends Rectangle{
public LabeledRectangle(int x, int y, int width, int height, String text) {
super (x, y, width, height);
this.text = text;
}
public void draw(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.draw(new Rectangle2D.Double(x, y, width,height));
Font font = g2.getFont();
FontRenderContext context = g2.getFontRenderContext();
g2.setFont(font);
int textWidth = (int) font.getStringBounds(text, context).getWidth();
LineMetrics ln = font.getLineMetrics(text, context);
int textHeight = (int) (ln.getAscent() + ln.getDescent());
int x1 = x + (width - textWidth)/2;
int y1 = (int)(y + (height + textHeight)/2 - ln.getDescent());
g2.setColor(Color.red);
g2.drawString(text, (int) x1, (int) y1);
}
private String text;
}
你'字体的字体= g2.getFont();'然后两行之后的'g2.setFont(字体);'不与变量'font'做任何事情。是不是'setFont'多余? – 11684
- 1. 结算ctx.fillStyle绘制填充矩形
- 2. 在矩形内绘制字符串的动态字体大小
- 3. 使用画布在填充的矩形内绘制文本Android
- 4. 如何绘制圆角矩形而不填充(在MFC中)?
- 5. 如何在PDFBox中绘制填充的矩形?
- 6. 如何在Rebol中绘制和填充圆角矩形
- 7. 在矩形内绘制等距矩形
- 8. 在OpenGL中绘制未填充的矩形形状
- 9. 在图像上绘制填充矩形并控制alpha通道
- 10. 如何绘制填充多边形?
- 11. 如何绘制填充的多边形?
- 12. 如何绘制没有填充的字符串
- 13. win32 - 如何围绕文本字符串绘制矩形?
- 14. 绘制和填充圆形
- 15. 如何使用svg在矩形内绘制矩形?
- 16. Android重绘矩形填充白色
- 17. 填充矩形 - 绘画方法(MIDP)
- 18. 绘制矩形,然后绘制缩小矩形在先前的矩形内
- 19. 绘制任何矩形到一个GTK + DrawingArea填充整个DrawingArea
- 20. 在矩形内填充文本
- 21. 在SeekBar和填充顶部绘制矩形
- 22. gnuplot:在3d图中绘制一个填充的矩形(splot)
- 23. 在Android中绘制带边框的填充矩形Android
- 24. 在Cocos 2d v3中绘制一个填充矩形
- 25. 在Python中绘制不同角度的填充矩形
- 26. 不能在OpenGL中绘制填充矩形
- 27. 如何在圆角矩形内或圆形内绘制图像?
- 28. 如何在MATLAB中使用字符串动态填充矩阵?
- 29. 做一个文本字符串填充矩形
- 30. 在android中绘制填充形状mapview
你尝试过这么远吗? 'drawString()'可以做到,但一定要在绘制矩形后调用它,否则会覆盖字符串。 – zeller
我已经尝试了g.fill之前的drawString,但它不是我正在寻找的。如果在g.fill之后,我尝试过,它仍然不是D: – alicedimarco
也许在drawString之前改变颜色? – zeller