好吧,显然我最近因为使用 NetBeans GUI Builder 变得懒惰了。当我将 JLabel 和 JTextField 添加到我的窗口时,JFrame 不会自行调整大小。我写了一个 SSCCE演示:
package swingdemo;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class SwingDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("Swing Demo");
Container contentPane = frame.getContentPane();
JLabel label = new JLabel("Demo Label");
JTextField textField = new JTextField();
contentPane.setLayout(new FlowLayout());
contentPane.add(label);
contentPane.add(textField);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
我在这里错过了什么?我知道这很简单。我是否需要在我的 JLabel 和 JTextField 上调用 setPreferredSize()?
最佳答案
在代码末尾调用 frame.pack()
javadoc 说:
“使此窗口的大小适合其子组件的首选大小和布局...”
关于java - 手动编码 Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064695/