【发布时间】:2014-09-05 16:44:12
【问题描述】:
对此有很多问题,但他们无法帮助我或者我不明白..
基本上我希望用户在系统返回主方法之前按下按钮。在这种情况下,如果系统返回主方法,系统将退出。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test123 implements ActionListener{
JTable table;
JButton button;
JFrame frame;
public test123 (){
frame = new JFrame();
frame.setLayout(null);
button = new JButton("Finish");
button.setBounds(200, 10, 70, 40);
button.addActionListener(this);
frame.add(button);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setSize(600, 200);
frame.setVisible(true);
frame.setTitle("TEst123");
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == button){
System.out.println("message....");
}
}
public static void main(String arg[]){
test123 gui = new test123();
System.exit(0);
}
}
对不起,如果只是我缺乏理解,谢谢你的帮助。
编辑: 也许我解释不正确或显示不正确。可以说如果系统返回主系统,它会做一些我不想要的事情,因此我希望用户按下按钮返回主系统或做“事情”。抱歉解释不好,包括这个。
这个类与我的工作是分开的,我只是用它来测试东西......在我的项目中,用户可以从几个按钮中进行选择(假设在这种情况下主方法是菜单)。用户按下一个按钮进入一个新的窗口/框架,如果程序没有暂停或等待按钮被按下,它将返回到 main 方法。
【问题讨论】:
-
那么,您希望程序在按下按钮时关闭?
-
“但他们无法帮助我,或者我不理解它..” 那么有什么可以相信我们可以用某种方式来解释它你能理解吗?也许开始 - 问题是什么,这些答案对你没有帮助 - 或者你对这些答案有什么不理解?
-
将
System.exit(0);移动到actionPerformed(ActionEvent)方法中。顺便说一句 - 您使用什么资源来学习 Swing?它似乎给你带来了很多坏习惯(AKA - '那个代码是垃圾')。 -
@Aeshang 这几乎是我今天读过的最愚蠢的评论。首先,
ActionListener是按钮的正确监听器(通常)。其次,OP希望通过按键而不是单击按钮来移动它。第三,它没有解决实际问题。 -
您对“回到主目录” 方法的重复声明绝对没有意义。 main 方法通常不应该被调用。这是 jvm 的简单启动点。 Swing 是事件驱动的,这意味着一切都通过事件发生。 没有没有“等待”。当用户激活一个组件时,监听这些事件的代码会做一些事情。如果你想要一个主屏幕,那么只需让主菜单按钮监听器显示主屏幕。
标签: java swing button actionlistener