宿題のために、「開始」ボタンをクリックしたときに jframe に赤い円を描く Java プログラムを作成する必要があります。ボタンをクリックすると、メソッドsetSmallCircle
が呼び出されます。これは機能しますが、このメソッド内で呼び出しを行ってrepaint()
いますが、これはメソッドを呼び出していないようですpaintComponent
。
これまでの私のコードは次のとおりです。
import java.awt.*;
import javax.swing.*;
class ReactionPanel extends JPanel {
Color color;
int size;
public void paintComponent(Graphics g){
System.out.println("paintcomp 1");
super.paintComponent(g);
System.out.println("paintcomp 2");
g.setColor(color);
g.fillOval(200, 200, size, size);
}
public void setSmallCircle(Color c){
color = c;
size = 10;
System.out.println("drawing");
repaint();
System.out.println("repaint called");
}
}
メソッドsetSmallCircle(Color.red)
は他のクラスによって呼び出されます。「repaint()」が赤い円を描かない理由を知っている人はいますか?