gpt4 book ai didi

java - 在 JFrame 中调用 JPanel

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:41 24 4
gpt4 key购买 nike

我认为这是一件简单的事情,但我在谷歌中没有找到对我有帮助的东西。

我有一个像菜单一样扩展 JPanel 的类,用户可以单击开始按钮并调用另一个扩展 JPanel 的类,但它不起作用。我在主方法中调用第一个类,它是一个简单的 JFrame,代码如下:

JFrame tela = new JFrame("teste");
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tela.setSize(800,600);
tela.add(new InitialScreen());

tela.setVisible(true);

在InitialScreen中我有一个带有以下actionEvent的按钮:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
this.add(new BackgroundGame());
this.validate();
this.revalidate();
this.setVisible(true);
}

但是我按下按钮却没有任何反应。

有人可以帮助我吗?

谢谢。

最佳答案

您需要在代码中加入类似这样的内容:

    JButton button1 = new JButton("Button 1");
InitialScreen panel = new InitialScreen(); // I am assuming this is a JPanel
button1.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// TODO add your logic
}
});
panel.add(button);
tela.add(panel);

请小心使用this运算符。如果您按照我的示例操作,您将无法使用this。您将需要使用 ActionEvent 对象来获取源对象,或者您将需要引用一些全局变量;例如您的情况中的tela

此外,我认为将 InitialScreen 设为匿名对象并不是一个好主意。您应该像我上面那样创建一个显式实例。

按钮应该在面板内部声明,并且我显示的逻辑应该在 InitialScreen 面板类中。在框架中,您唯一需要做的就是创建 InitialScreen 的实例并将其添加到框架中。

关于java - 在 JFrame 中调用 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28650722/

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