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 を拡張するクラスがいくつかあり、それらをすべてクラスで使用して再描画できるようにしたい場合。1つが円、長方形、正方形などであるとしましょう........
それらすべてにpaintComponent()
withがある場合、super.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()
.
ダグ・ハウフ