English 中文(简体)
使用油漆元件重新油漆()
原标题:Re-painting using PaintComponent()
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);
    }
}

}

我用了上述代码的 油漆元件脚本的公认答案, 效果很好, 但现在的问题是,我该如何让它画不止一次呢?

问题回答

您应该将您的绘画代码写在 overpen 颜料元件的功能中, 比如 :

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 进行再油漆( 即它会叫你的 < code> painComponent (.) 函数 ) 。

请注意,将绘画代码放入JFrame以外的部件是良好做法 -- -- 这使得您在建立您的图形用户界面时,可以灵活地根据需要重新定位查看组件。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签