Java 在paintComponent中绘制另一个组件
我使用Java教程中的SwingPaintDemo2: 我这样修改它:Java 在paintComponent中绘制另一个组件,java,swing,Java,Swing,我使用Java教程中的SwingPaintDemo2: 我这样修改它: public void paintComponent(Graphics g) { super.paintComponent(g); // Draw Text g.drawString("This is my custom Panel!",10,20); JLabel c = new JLabel("Label"); c.paint(g); } g、 拉绳很好用。但是如何使用此方
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Draw Text
g.drawString("This is my custom Panel!",10,20);
JLabel c = new JLabel("Label");
c.paint(g);
}
g、 拉绳很好用。但是如何使用此方法绘制JLabel?它不起作用。我想你必须给你的标签设定一个尺寸
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Draw Text
g.drawString("This is my custom Panel!",10,20);
JLabel c = new JLabel("Label");
c.setBounds(0, 0, 400, 30);
c.paint(g);
}
请参阅上的
LabelRenderTest.java
源代码。标签最终会绘制到屏幕上,但在显示之前会绘制到buffereImage
源代码的重要行是
textLabel.setSize(textLabel.getPreferredSize());
将示例、Html和图像放在一起+1@mKorbel“一幅图像能描绘千言万语”(通常会获得几张得票)。HTML只是因为我无法计算每个文本元素的确切位置我不能把你的人身攻击看作是对我优秀的、令人兴奋的、不可互换的,不管怎样。。。我说英语的形式:-),当我读到你的一些编辑(或其他本地说话者的编辑)时,一定有人笑死了:-)你应该尽量避免撞击传递的
图形对象。相反,使用一个副本Graphics gCopy=g.create()
.c.setBounds-我甚至没有想过。非常感谢。