【发布时间】:2015-09-19 22:47:59
【问题描述】:
我有代码
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.FlowLayout;
class GUI extends JFrame {
JPanel mainPanel;
public GUI(String header) {
super(header);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setLayout(new FlowLayout(FlowLayout.CENTER));
init();
add(mainPanel);
pack();
}
public void init() {
mainPanel = new JPanel(){
@Override
public void paintComponent(Graphics g) {
g.fillOval(0, 0, 50, 50);
}
};
}
}
在我的主要方法中,我有
GUI progam = new GUI("Title");
progam.setLocationRelativeTo(null);
progam.setVisible(true);
如果我运行程序,我会得到输出:
如果我取消注释 setLayout,我会得到输出:
两个问题:
- 为什么
pack()在第一种情况下没有按预期工作?我不应该看到整个圆圈而不是看到一半吗? - 为什么椭圆在第二个输出中变成了三角形?
【问题讨论】:
标签: java swing graphics flowlayout