Java拼图-尝试在单击按钮后处理GUI
已解决:@sailator已在下面的评论中完全使用了我的编码 好的,我制作了3个类,它们都相互链接: SplashScreen>项目分配>比较签名 我想说的是splashscreen类: 因此,在本课程中,我有3种方法:Java拼图-尝试在单击按钮后处理GUI,java,swing,jframe,jbutton,actionevent,Java,Swing,Jframe,Jbutton,Actionevent,已解决:@sailator已在下面的评论中完全使用了我的编码 好的,我制作了3个类,它们都相互链接: SplashScreen>项目分配>比较签名 我想说的是splashscreen类: 因此,在本课程中,我有3种方法: publicstaticvoid createAndShowGUI() -这种方法保存了创建和显示GUI的所有信息 -JFrame=newjframe(“欢迎!”);等等 public void actionPerformed(ActionEvent e) -此方法使按钮i能够
publicstaticvoid createAndShowGUI()
-这种方法保存了创建和显示GUI的所有信息
-JFrame=newjframe(“欢迎!”);等等
public void actionPerformed(ActionEvent e)
-此方法使按钮i能够被单击并打开下一个GUI
-如果(例如getSource()==enterButton)等
publicstaticvoidmain(字符串[]args)
-此方法中只包含“createAndShowGUI();”,以便在运行代码时显示GUI
我需要做的是能够给JButton另一个操作,以便在单击时关闭SplashScreen类(从createAndShowGUI
),但我的问题是:
JFrame=newjframe(“”)代码>来自actionPerformed方法中的createAndShowGUI
方法,因为createAndShowGUI
方法是静态的
公共静态void main(String[]args)
将不会使用createAndShowGUI()代码>方法,GUI将不显示
if(e.getSource()==enterButton){
System.exit(0);
}
if(e.getSource()==enterButton){
frame.dispose(); //Cannot reference frame from static createAndShowGUI method
}
所以我很困惑,是否可以通过点击按钮来关闭SplashScreen类?提前感谢我从中选取了以下示例。可能您采用相同的方法是因为
createAndShowGUI
方法具有相同的名称。。。我通过一个按钮和一个适当的侦听器来扩展它,该侦听器处理帧。你的问题对我来说有点难理解,但我认为这个例子可以回答你的问题
public class FrameDemo {
private static void createAndShowGUI() {
final JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Exit");
button.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(button, BorderLayout.CENTER);
ActionListener buttonListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
}
};
button.addActionListener(buttonListener);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
你能证明这个洞的等级代码吗?(如果它足够小)为了更快地获得更好的帮助,发布一个。@或者当然,我现在会编辑这篇文章,它有72行长,所以不是一个大文件,谢谢我没有看到这个编码beofre,但这几乎是解决方案,当我看到它时,我兴奋了一点,但是当我引用我的按钮时,它不能从静态类内部被引用,我的按钮是JButton enterButton;在顶部page@tombannister关于您的更新:在
SplashScreen1
的构造函数中创建JFrame。这将把帧
从静态上下文移动到实例。