我正在使用JPanel和JFrame类在窗口中创建简单的图形,并且发现了一个相当奇怪的问题。我目前的设置如下:
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×10000,它可以正常工作......请帮助吗?
答案 0 :(得分:0)
将c.repaint();
替换为:
a.pack();
a.setVisible(true);
它应该显示红色方块。