0
我正在使用JPanel和JFrame類在窗口中創建簡單的圖形,並發現了一個相當奇怪的問題。我目前的設置是這樣的:JPanel重繪()方法問題
import javax.swing.JFrame;
public class MyFrame extends JFrame{
public MyFrame() {
super("App Schmapp!");
this.setSize(new java.awt.Dimension(500, 500));
this.setMinimumSize(this.getSize());
this.setMaximumSize(this.getSize());
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
MyPanel c = new MyPanel();
MyFrame a = new MyFrame();
a.add(c);
c.repaint();
}
}
以上顯然是我的JFrame類,下面將我的JPanel類
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class MyPanel extends JPanel {
public void paintComponent(Graphics G) {
super.paintComponent(G);
Graphics2D g = (Graphics2D) G;
g.setColor(Color.RED);
g.fillRect(50, 50, 50, 50);
}
}
我的希望是,這將正常工作,但是當我運行此代碼空白窗口彈出,沒有圖形。我不明白的部分是,如果我將JFrame的尺寸更改爲7000 x 10000的尺寸,它可以正常工作......請幫忙嗎?
不需要在這裏調用repaint()。在添加所有組件後,只需在JFrame **上調用'setVisible(true)'。一個共同的問題。 –
因此,刪除行'c.repaint();'並在其位置移動'a.setVisible(true);' –