JAVA如何用按钮关闭窗体
首先分析需要的GUI技术
java中一般使用swing 和awt技术来实现图形界面,Swing组件较多,功能比较强大,所以这里使用Swing组件来实现。窗口使用(JFrame),按钮使用(JButton)。
设想一个符合题目需求的场景
两个窗口关联并且跳转,最常见的场景就是登陆了。
登陆窗口,输入用户名和密码,如果成功就跳转到主窗口
核心逻辑,跳转窗口的关键代码
一般可以隐藏本窗口(setVisible(false);),显示新窗口来实现窗口的跳转。
但是隐藏窗口,会在后面浪费系统资源。
如果不再使用该窗口,应该彻底销毁(dispose();),释放系统资源
代码和注释
LoginFrame 类
import java.awt.*;import java.awt.event.*;import javax.swing.*;//LoginFrame 登陆窗口 功能 实现用户登陆 ,如果成功就跳转//LoginFrame 继承于窗口类, 并实现ActionListener接口public class LoginFrame extends JFrame implements ActionListener {// 申明需要的组件JButton jb1, jb2;//按钮JTextField jtf1;//文本框JPasswordField jpf1;//密码框public LoginFrame() {// 窗口属性的设置setTitle("登陆窗");// 窗口标题setSize(300, 180);// 窗口大小setLocationRelativeTo(null);// 窗口居中setDefaultCloseOperation(EXIT_ON_CLOSE);// 关闭窗口则退出虚拟机setLayout(new FlowLayout());// 设置布局流式布局JPanel jp = new JPanel(new GridLayout(4, 1));// 设置面板为表格布局4行1列// 第一行JPanel jp1 = new JPanel();JLabel jl1 = new JLabel("账号 ");jtf1 = new JTextField(12);jp1.add(jl1);jp1.add(jtf1);jp.add(jp1);// 第二行JPanel jp2 = new JPanel();JLabel jl2 = new JLabel("密码 ");jpf1 = new JPasswordField(12);jp2.add(jl2);jp2.add(jpf1);jp.add(jp2);// 第三行JPanel jp3 = new JPanel();jb1 = new JButton("登陆");jb1.addActionListener(this);// 添加动作响应器jb2 = new JButton("重置");jb2.addActionListener(this);// 添加动作响应器jp3.add(jb1);jp3.add(jb2);jp.add(jp3);// 第四行JPanel jp4 = new JPanel();JLabel jl3 = new JLabel("提示: 账号 admin 密码 123");jl3.setForeground(Color.DARK_GRAY);jp4.add(jl3);jp.add(jp4);add(jp);}// 动作响应public void actionPerformed(ActionEvent e) {String cmd = e.getActionCommand();// 根据动作命令,来进行分别处理if (cmd.equals("登陆")) {String id = jtf1.getText();// 取得用户名String key = new String(jpf1.getPassword());// 取得密码if (id.equals("admin") && key.equals("123")) {// 判断是否登录成功// 如果登录成功setVisible(false);// 本窗口隐藏,new MainFrame(id).setVisible(true);// 新窗口显示dispose();//本窗口销毁,释放内存资源} else {//如果登录失败 弹出提示JOptionPane.showMessageDialog(this, "用户名或者密码错误.", "通知", JOptionPane.ERROR_MESSAGE);clearText();//清空文本框 密码框的输入}} else if (cmd.equals("重置")) {clearText();}}private void clearText() {//清空文本框, 密码框的输入jtf1.setText("");jpf1.setText("");}//main方法, 程序的入口public static void main(String[] args) {new LoginFrame().setVisible(true);//创建登录窗口,并可见}}MainFrame类
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MainFrame extends JFrame {public MainFrame(String name) {setTitle("主窗口");//标题setSize(300, 260);//大小setLocationRelativeTo(null);//居中setDefaultCloseOperation(EXIT_ON_CLOSE);JPanel jp = new JPanel();JLabel jl1 = new JLabel("欢迎");JLabel jl2 = new JLabel(name);jl2.setForeground(Color.BLUE);//设置文本颜色JLabel jl3 = new JLabel("使用系统.");jp.add(jl1);jp.add(jl2);jp.add(jl3);add(jp, BorderLayout.NORTH);JTextArea jta = new JTextArea();jta.setLineWrap(true);jta.append("消息提示");jta.append(" 消息!通知~!");JScrollPane jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);add(jsp);JPanel jp2 = new JPanel();JButton jb = new JButton("退出");jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);//退出}});jp2.add(jb);add(jp2,BorderLayout.SOUTH);}}
运行效果图
这个不对,这个是设置标题栏上的按钮退出方式的
你可以按钮上添加事件把窗口2设置为隐藏。
jButton1.setText("ok");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jFrame1.setVisible(false);
}
});
另外 按钮退出的命令是在按钮的事件中写
System.exit(0);
如一楼所说的,给按钮加一个监听器ActionListener,写一个实现方法
actionPerformed.此时当按钮点击时会调用actionPerformed方法,代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Close extends JFrame implements ActionListener{
JButton close;
public Close(){
close = new JButton("close");//增加一个按钮
add(close);
close.addActionListener(this);//给按钮增加一个监听器
setLayout(new FlowLayout());
setSize(200,100);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//捕捉到按钮点击时的事件处理方法
//按钮点击时一定会自动执行actionPerformed(ActionEvent e)方法
public void actionPerformed(ActionEvent e){
//关闭整个应用程序.如果只是是想关闭当前窗口,可以用
//dispose();
System.exit(0);
}
public static void main(String[] args){
new Close();
}
}
implements windowsListener
里边有7个方法
void windowActivated(WindowEvent e)
将 Window 设置为活动 Window 时调用。
void windowClosed(WindowEvent e)
因对窗口调用 dispose 而将其关闭时调用。
void windowClosing(WindowEvent e)
用户试图从窗口的系统菜单中关闭窗口时调用。
void windowDeactivated(WindowEvent e)
当 Window 不再是活动 Window 时调用
void windowDeiconified(WindowEvent e)
窗口从最小化状态变为正常状态时调用。
void windowIconified(WindowEvent e)
窗口从正常状态变为最小化状态时调用。
void windowOpened(WindowEvent e)
窗口首次变为可见时调用。
需要用到哪个就实现哪个 dispose(); 其他空实现
这个比较便于你的理解 有工具实现也省了
使用jbuilder2005以上版本写这个程序,
在界面视图双击窗体上的那个按钮就可以直接将光标定位到一个方法中,这时写上this.dispose();
再运行试试
给按钮加如一个监听器ActionListener
实现方法actionPerformed,
方法中实现 yourwindow.dipose() or yourwindow.close();
ava里怎样关声音
右上方游戏设置---音频---都调为0
ava视频怎么调
右上角有个设置看见了没?就是带齿轮的那个,打开以后会出现一个对话框。把自动配置改成手动的,然后点高级设置,自然就看到了。具体什么问题说一下。
按键精灵制作AVA挂机脚本 怎么做 求教 QQ 1321938703
然后按下Scroll Lock 键(ScrLk键)(一般在F12键右边。你看一下。)再按F5。。开始游戏。接下来任何键都不要去按它。等时间自己完就是了(没超过2分钟。是不会遭T的)。然后战斗结束。会有两个框框弹出来。第一个框框弹出来后。等待2-3秒。然后按下ESC键。回到房间界面。再次按下Scroll Lock ...
谁帮我点亮AVA图标?
我来吧,先进入官网。点“点亮图标”按钮,他会让你登陆,你就登下,进去后点我要点亮图标,再点荣誉系统,进去后就可以点亮了。记住:第一,你首先得有一个号 第二,你还得在5.31号之前去点。没了,就这么简单!!~~
移动净化革新净化方式 科沃斯沁宝AIRBOT Ava空气净化机器人评测_百度知 ...
面板下方为三个触摸按键,从左到右依次是风量调节、开关、模式切换。 科沃斯沁宝AIRBOT Ava空气净化机器人可以通过科沃斯APP控制,只要扫码配对机器人后,就可以随意使唤它。当然,也可以通过顶部右侧的“模式切换”按键切换两种模式,一种是本机特色——移动全屋空气净化模式,另一种是所有空气净化器标配的原地净化功能。而...
玩战地之王(AVA)时,CPU使用率100%
方法一:关闭“为菜单和工具提示使用过渡效果”1、点击“开始”--“控制面板”2、在“控制面板”里面双击“显示”3、在“显示”属性里面点击“外观”标签页4、在“外观”标签页里面点击“效果”5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。方法二:在使用...
求AVA战地之王死机问题和解决办法.
1、在我的电脑窗口,右击要清理的盘符—“属性”—“清理磁盘”--勾选要删除的文件--确定--是。2、清除临时文件,开始—运行—输入 %temp% --确定。3、用优化大师或超级兔子清理注册表和垃圾文件。4、关闭一些启动程序, 开始-运行-msconfig---启动 ,除杀毒软件、输入法外一般的程序都可以关掉。5...
AVA和YY怎么一起用?
必然可以,建议你把按键发音的默认CTRL去了,跟AVA的蹲下键重了。比如F2这样,你在AVA游戏时按住F2,YY频道里的人就能够听到你的声音了,当然你也可以自由发音,就不用按键,别人一直都听得到你声音
AVA一卡一卡的怎么解决?
你所说的情况有几种因素,第一:网络波动导致掉包、卡顿现象;第二:电脑配置;第三:游戏优化问题(这个很重要,国服AVA的优化不是很好,想玩顺畅,必须高配)。另外,有时候你按下Tab等按钮没反应的时候,可以按两下回车键(就是你发聊天的那个键)就行了。
玩AVA老是温度过高,自动关机!求高人指点! 电脑型号 技嘉 GA-MA770-S3...
shutdown.exe -f 强行关闭应用程序。shutdown.exe -m \\\\计算机名控制远程计算机。shutdown.exe -i 显示图形用户界面,但必须是Shutdown 的第一个参数。shutdown.exe -l 注销当前用户。shutdown.exe -r 关机并重启。shutdown.exe -t 时间设置关机倒计时。shutdown.exe -c"消息内容" 输入关机对话...
相泉吉法: 很久没有用过界面编程了,就当复习一下了,哈哈如一楼所说的,给按钮加一个监听器ActionListener,写一个实现方法actionPerformed.此时当按钮点击时会调用actionPerformed方法,代码如下:import ja...
大观区18852378831: 如何在java设置的按钮中加入关闭窗口功能? - ?
相泉吉法: //退出程序 jButton4.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {System.exit(0);//这里}});//点击取消,关闭窗口jButton_cancel.addActionListener(new java.awt.event...
大观区18852378831: 在java中怎样通过按钮将Frame关闭代码 - ?
相泉吉法: Button btn=new Button("关闭"); btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);//程序退出,关闭掉Frame} });
大观区18852378831: 这个java程序添加一个关闭按钮,并且能实现关闭窗口 - ?
相泉吉法: package test;import java.awt.*; import java.applet.*; import java.awt.event.*;import javax.swing.JButton;public class SimpleEvent extends Applet implements ActionListener { Label lb; TextField in; TextField out; Button button; public void init(...
大观区18852378831: 用JAVA编程一个菜单命令和一个按钮都能实现窗口的关闭?
相泉吉法: import java.awt.*; import java.awt.event.*; public class Test extends Frame { public static void main(String[] args) { new Test(); } public Test() { this.setSize(800,600); this.addWindowListener(new WindowAdapter()//添加窗体关闭事件 { public void ...
大观区18852378831: Java中实现点击一个按钮出现一个新的页面且关闭当前页面 - ?
相泉吉法: 在事件里添加 JFrame f=new JFrame();//不局限于JFrame,以你自己的窗口类名自行修改 this.dispose();//关闭当前窗口 就可以了
大观区18852378831: java 用按钮关闭当前页面 - ?
相泉吉法: Button button = ButtonBuilder.create().text("Close").onAction(new EventHandler<ActionEvent>(){ @Override public void handle(ActionEvent e){ Event.fireEvent(stage, new WindowEvent(stage, WindowEvent.WINDOW_CLOSE_REQUEST )); } }).build();
大观区18852378831: java中如何使“点击子窗口的按钮时主窗口与子窗口同时关闭”? - ?
相泉吉法: 应该对你有帮助的!原来也遇到过这样的问题.只要设置窗体的setDefaultCloseOperation方法就可以了.这个方法是描述关闭按钮的不同形式的,可以关闭一个窗口,也可以关闭整个程序DO_NOTHING_ON_CLOSE(在WindowConstants中定...
大观区18852378831: 怎样用JAVA编程编写题目:设计一个窗体,在窗体中有个按钮,单击退出按钮,窗体消失 - ?
相泉吉法: /** 希望 对你有用 同学 一个简单而 但 很 实用的例子 */import java.awt. * ; import java.awt.event. * ;import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities;public class swing extends JFrame { /** * @param args */ ...
大观区18852378831: java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件? - ?
相泉吉法: 在你JFrame的构造函数里,添加如下代码即可.实际上就是添加一个对窗口动作的监听程序代码段 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });