JComponents 仅在调整大小后出现
JComponents only appear after resizing
我遇到了我很确定是一个小故障,但还没有找到任何解决方法。目前,我只有一个简单的 window,它有一个文本字段和一个标签。当我第一次运行这个程序的时候,出现的是一个空的window,当我调整window的大小时,通过最大化或者只是手动调整一点点,组件出现了,这是怎么回事在吗?
public class Calculator {
public static void main(String[] args) {
JFrame mainFrame = new JFrame("Calculator");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(300,400);
mainFrame.setLocationRelativeTo(null);
mainFrame.setVisible(true);
JPanel mainPanel = new JPanel();
mainFrame.add(mainPanel);
JTextField mainField = new JTextField(20);
mainPanel.add(mainField);
JLabel mainLabel = new JLabel("Orange");
mainPanel.add(mainLabel);
}
}
默认情况下,所有组件的大小都是(0, 0),所以没有什么可绘制的。
需要在 setVisible() 方法之前将组件添加到框架中。然后当框架可见时调用布局管理器并为组件提供 size/location.
您在调用 setVisible(true) 后向框架添加组件。
这个问题已经有人问过了。
Java items appear only after the window is resize
我遇到了我很确定是一个小故障,但还没有找到任何解决方法。目前,我只有一个简单的 window,它有一个文本字段和一个标签。当我第一次运行这个程序的时候,出现的是一个空的window,当我调整window的大小时,通过最大化或者只是手动调整一点点,组件出现了,这是怎么回事在吗?
public class Calculator {
public static void main(String[] args) {
JFrame mainFrame = new JFrame("Calculator");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(300,400);
mainFrame.setLocationRelativeTo(null);
mainFrame.setVisible(true);
JPanel mainPanel = new JPanel();
mainFrame.add(mainPanel);
JTextField mainField = new JTextField(20);
mainPanel.add(mainField);
JLabel mainLabel = new JLabel("Orange");
mainPanel.add(mainLabel);
}
}
默认情况下,所有组件的大小都是(0, 0),所以没有什么可绘制的。
需要在 setVisible() 方法之前将组件添加到框架中。然后当框架可见时调用布局管理器并为组件提供 size/location.
您在调用 setVisible(true) 后向框架添加组件。 这个问题已经有人问过了。
Java items appear only after the window is resize