java 油漆组件()
class MyClass extends JComponent {
void paintComponent() {
//code for class here
}
}
class myTestClass extends JPanel {
MyClass temp = new MyClass();
void paintComponent() {
super.paintComponent();
static void main(String[] a) {
JFrame f = new JFrame();
//Does the temp have to be added to the panel before it can be repainted
}
} //End Class
我知道JPanel
进入JFrame
. 但是是否MyClass
必须将类 () 添加到 中,JPanel
以便使用paintComponent()
重绘子节点super.paintComponent()
。我想会是这样。如果是这种情况,那么如果重新绘制组件,则temp.repaint()
应该在调用它的任何地方重新绘制该特定super.paintComponent()
组件。
这似乎是一个没有人或至少没有人真正发布过的答案。我的解释可能有点,所以我会在这里尝试澄清一下。
如果我有几个扩展 JComponent 的类,并且我希望它们都在类中使用,那么我可以重新绘制它们。假设一个是圆形,矩形,正方形等............
如果他们都有一个paintComponent()
with asuper.paintComponent()
他们应该能够重新粉刷VariableName.repaint();
是否必须将它们添加到JPanel
将它们作为内容保存的内容中。并且可以repaint()
从代码中的任何地方调用它们(我认为是这种情况)。
驱动类:
class MyMainDriverClass {
A a = new A();
B b = new B();
C c = new C();
void someClass() {
a.repaint();
b.repaint();
c.repaint(); //this should repaint the components if the JPanel is inside of the JFrame
//(I didn't put this code in)
}
}
如果创建的所有类都具有paintComponent()
.
道格·豪夫