我似乎无法弄清楚为什么我的JFrame为空。我要去哪里错了?
导入javax.swing。*; 导入java.awt.FlowLayout;
公共类GUIExample扩展JFrame {
JCheckBox box1 = new JCheckBox("Satellite Radio"); JCheckBox box2 = new JCheckBox("Air Conditioning"); JCheckBox box3 = new JCheckBox("Manual Tranmission"); JCheckBox box4 = new JCheckBox("Leather Seats"); JRadioButton radio1 = new JRadioButton("Car"); JRadioButton radio2 = new JRadioButton("Pickup Truck"); JRadioButton radio3 = new JRadioButton("Minivan"); JTextField text = new JTextField(); ButtonGroup group = new ButtonGroup(); public void newGUI() { setLayout(new FlowLayout()); JPanel panel = new JPanel(); JPanel textPanel = new JPanel(); add(textPanel); add(panel); panel.add(box1); panel.add(box2); panel.add(box3); panel.add(radio1); panel.add(radio2); panel.add(radio3); group.add(radio1); group.add(radio2); group.add(radio3); } public static void main(String[] args) { JFrame frame = new JFrame("GUI Example"); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); frame.setSize(500, 500); frame.setVisible(true); }
}
您忘记在jFrame中添加contentPane了,就像这样
frame.setContentPane(panel);
我注意到您正在使用继承来构建jFrame,因此在这种情况下,您需要实例化自己的类。我已经用最小的代码重构了您的代码以运行jFrame。
public class GUIExample extends JFrame { JCheckBox box1 = new JCheckBox("Satellite Radio"); public static void main(String[] args) { JFrame frame = new GUIExample("GUI Example"); JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); panel.add(box1); frame.setContentPane(panel); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); frame.setSize(500, 500); frame.setVisible(true); } }
基本上,您创建一个JFrame,创建一个JPanel,将组件添加到此面板,然后使用将该面板设置为您的框架setContentPane(panel)。
setContentPane(panel)
对不起,我现在无法测试,因此,如果有人可以并根据需要进行修复,将不胜感激,但这是这样的。