如何在Java中重新绘制()组件

如何在Java中重新绘制()组件,java,swing,Java,Swing,是否可以使用paintComponent()创建一个JComponent类,该类可以在另一个类中实例化并调用自己的repaint()方法 class A extends JComponent { @Override paintComponent(){//code here } } class B { static public A temp = new A(); void someMethod() { if (something)

是否可以使用
paintComponent()
创建一个
JComponent
类,该类可以在另一个类中实例化并调用自己的
repaint()
方法

class A extends JComponent {
     @Override
     paintComponent(){//code here
     }
}

class B {
    static public A temp = new A();

    void someMethod() {
     if (something)
       temp.repaint(); //will this repaint this particular 
                       //component if it was in a JFRAME    
     else if (something)
        //do not repaint
          else if (anothersomething)
             temp.repaint();
}   

类A中的静态方法可能会有所帮助?如果您有对组件的引用,则可以对该组件调用repaint()。如果组件显示在可见GUI中,则它将重新绘制自身。如果组件可见并添加到添加到JFrame的JPanel中,则可以重新绘制组件()。然后我可以从变量名调用repaint()方法。myVariable.repaint()可以从代码中的任何位置调用,它应该重新绘制paintComponent()方法中的任何内容。我认为类A中的方法不必是静态的,因为它是JComponent类中被重写的paintComponent()。