当前位置: 首页 > 面试题库 >

为什么我的JFrame是空的?

田信然
2023-03-14
问题内容

我似乎无法弄清楚为什么我的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)

对不起,我现在无法测试,因此,如果有人可以并根据需要进行修复,将不胜感激,但这是这样的。



 类似资料:
  • 我对编程相对较新,所以如果这个问题很愚蠢,我很抱歉。我正在创建一个Java程序,它在JPanel中包含一个JButton,而JPanel在JFrame中。另一个按钮在JPanel之外,但仍在JFrame中。我将布局设置为BoxLayout。我的问题是,我把面板做成黑色,除了第二个按钮之外,它占据了整个JFrame。如何使JPanel只占用第一个按钮周围的区域?

  • 问题内容: 我正在运行,并且在.htaccess文件中执行了以下操作: 如果我在PHP文件中打印出变量,则会得到一个空数组。为什么我的环境变量没有出现在这里?为什么首先是空的? 我确实找到了变量,但是它出现在变量中。由于某种原因,它出现了两次。为什么是这样? 看来我可以使用来获得它,所以也许我应该只使用它。但是我仍然对造成这种情况的原因有些好奇。这是Windows问题吗?还是发生了什么事? 问题答

  • 问题内容: 我在TableView中添加了默认的TEST1和TEST2作为Name Col,但是在运行它时却没有显示。这是我使用过的两个类和一个fxml,有人可以给我一些有关此问题的建议吗? 仅一个包调用:controllerJBoxFXTest 第一类MainView.class包controllerJBoxFXTest; 在第二个MainController.java中,可以看到我添加了TES

  • 今年夏天,为了学习app开发,我已经决定在Android工作室做一个闹钟,事先没有太多Java或OOP方面的知识。 我试图使用TimePickerDiaglog获取用户对警报的输入,然后将该时间存储在Calendar实用程序中,这样我就可以使用警报管理器设置一个挂起的意图。 不幸的是,我收到一个NullPointerException,这意味着我的日历设置不正确,当我与AlarmManager一起

  • 我已经彻底研究了所有的问题,但没有一个直接适用于我的问题。我正在循环访问用户ID数组并匹配它们以从我的firestore DB中获得一个用户。我会毫无问题地返回结果,但当我将其存储在状态数组中并运行控制台日志时,我的状态数组总是空的。第一个console.log工作并显示DB的结果。 请帮帮忙。

  • 我想发送用户的电子邮件检查副本 这是我的背部控制器 这是我的前控制器 这是我的观点 当我使用“console.log”检查时,前端控制器可以正确地获取用户的电子邮件。但是在后面的控制器中,RequestParam什么都没有,只有NULL没有错误代码,除了'nullPointerException'。 我想这不是沟通错误。我是不是错过了什么?谢了!