class BiomeViewComponent extends JComponent {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
int xpos=300;
int ypos=300;
g.setColor(Color.yellow);
Random r = new Random();
int spread = r.nextInt(2)+1;
System.out.println(spread);
if (spread==1){
xpos=xpos+50;
g.setColor(Color.yellow);
g.fillRect(xpos,ypos,50,50);
}
else{
ypos=ypos-50;
g.setColor(Color.yellow);
g.fillRect(xpos,ypos,50,50);
}
}
}
我使用了paintComponent脚本的接受答案,就像上面的代码一样,但是现在的问题是如何让它不止一次地绘制?
答案 0 :(得分:2)
您应该在覆盖的paintComponent函数中编写绘制代码,例如:
class BiomeViewComponent extends JComponent {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
// your painting code goes here
}
}
然后将其添加到您的JFrame中,例如:
JFrame j = new JFrame();
BiomeViewComponent bv=new BiomeViewComponent();
Container c=j.getContentPane();
c.setLayout(new BorderLayout()); // whatever layout you want here.....
c.add(bv);
BiomeViewComponent将在需要时通过Swing重新绘制(即它将为您调用paintComponent(..)
函数)
请注意,最好将绘制代码放在JFrame以外的组件中 - 这使您可以在构建GUI时根据需要灵活地重新定位查看组件。