gpt4 book ai didi

java - 按钮布局问题 - JFrame

转载 作者:行者123 更新时间:2023-11-30 04:14:51 24 4
gpt4 key购买 nike

我想创建一个应用程序,该应用程序的中心有一大片文本区域,底部有一行 5 个按钮。这是我的代码:

public TheDungeon()
{
setTitle("InsertGameNameHere");
setSize(750, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
setLocationRelativeTo(null);


gameScreen = new JLabel();

add(gameScreen, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);

setVisible(true);

}

private void buildButtonPanel()
{
// Create a panel for the buttons.
buttonPanel = new JPanel();

// Create the buttons.
b1 = new JButton("Button 1");
b2 = new JButton("Button 2");
b3 = new JButton("Button 3");
b4 = new JButton("Button 4");
b5 = new JButton("Button 5");

// Add the buttons to the button panel.
buttonPanel.add(b1);
buttonPanel.add(b2);
buttonPanel.add(b3);
buttonPanel.add(b4);
buttonPanel.add(b5);
}

我的应用程序甚至无法运行。当我尝试运行它时它崩溃了。我不确定问题是什么。 我的错误(如果有帮助的话):

Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1086)
at java.awt.Container.add(Container.java:998)
at javax.swing.JFrame.addImpl(JFrame.java:562)
at java.awt.Container.add(Container.java:966)
at TheDungeon.<init>(TheDungeon.java:38)
at TheDungeon.main(TheDungeon.java:230)

最佳答案

此异常:

Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1086)
at java.awt.Container.add(Container.java:998)
at javax.swing.JFrame.addImpl(JFrame.java:562)
at java.awt.Container.add(Container.java:966)
at TheDungeon.<init>(TheDungeon.java:38)
at TheDungeon.main(TheDungeon.java:230)

意味着您正在尝试“取消引用”TheDungeon 类第 38 行处的空变量:at TheDungeon.<init>(TheDungeon.java:38)

我猜这涉及到buttonPanel。您是否曾调用过 buildButtonPane() ——我在任何地方都没有看到这个调用?如果不这样做,buttonPanel JPanel 将为 null。

解决方法:在使用JPanel之前调用该方法。更好的是,让该方法返回一个随后使用的 JPanel。

这个问题的教训不是具体的解决方案,而是如何读取NullPointerException。它会告诉您哪一行导致了错误,然后您可以检查该行上的变量以查看哪一行为空,然后追溯到您的代码并查看原因。

关于java - 按钮布局问题 - JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com