我不习惯于GUI开发,但是现在我需要一点,并且我想避免仅仅因为这个问题而阅读所有文档。
我在显示自定义组件(如我在下面发布的组件)时遇到麻烦。如果我将其添加到JFrame中,则可以正常工作,但不能再添加一个,如果将其添加至JPanel中,则完全不会显示。
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
public class Test extends JComponent implements Runnable {
private int c,x,y;
public Test(int x,int y){
c = 0;
this.x = x;
this.y = y;
}
private void inc(){
c++;
if(c>255){
c = 0;
}
}
public void paint(Graphics g) {
g.setColor(new Color(c,c,c));
g.fillRect(x, y, 50, 50);
}
public void run() {
while(true){
inc();
try{
Thread.currentThread().sleep(20);
} catch (Exception e){
}
repaint();
}
}
}
最佳答案
我想避免阅读全部
正因为如此
问题。
是的,良好的阅读实际上可以节省时间,因为您可以在第一时间正确地做事,而不必坐在那里等待/希望别人回答您的问题。
所以从Swing tutorial开始
1)通过覆盖paintComponent()方法来完成自定义绘制。阅读Swing教程中有关“自定义绘画”的部分。
2)动画应该通过使用Swing计时器来完成,请参见教程中“如何使用计时器”部分。
3)实际上,您不需要创建自定义组件。您需要做的就是创建一个JPanel,设置其首选大小,然后使用Timer更改其背景。