Java 用按钮打开另一个JFrame?
这是我的密码。当我运行我的程序并单击“btnShop”时,当前帧将被处理,但商店帧不会打开Java 用按钮打开另一个JFrame?,java,swing,nullpointerexception,Java,Swing,Nullpointerexception,这是我的密码。当我运行我的程序并单击“btnShop”时,当前帧将被处理,但商店帧不会打开 btnShop.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.dispose();
btnShop.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
Shopframe.setVisible(true);
}
});``
这是我单击按钮时出现的错误
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MainFrame$6.actionPerformed(MainFrame.java:457)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
我已经用不同的方法玩了一个多小时了。我就是不能让它工作。我所要做的就是打开橱窗。有人知道我做错了什么吗?尝试实例化要打开的JFrame:
btnShop.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
//**add this
Shopframe name = new ShopFrame();
//***
name.setVisible(true);
}
});
很可能ShopFrame为空。您必须在使用它之前创建框架。为了澄清,第457行是Shopframe.setVisibletrue;是我创造的。请提供更多代码,包括在何处/如何创建。1请参阅2使用,如中所示。3为了更快地获得更好的帮助,发布一个最小的完整的可验证示例或简短、独立、正确的示例。。。4看&@huseyintugrulbuyukisik它肯定不会。它们都应该在事件调度线程上运行,其中只有一个线程。