❶ java怎么实现点击按钮关闭窗口
你可以按钮上添加事件把窗口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);
❷ 如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口
JButtonbtn=newJButton(newAbstractAction("关闭并打开"){@(ActionEvente){oldFrame.dispose();//关闭并销毁,无需销毁可采用oldFrame.setVisible(false);newFrame.setVisible(true);//打开新窗口}});
❸ JAVA中怎么关闭一个窗口
如果是add(XXX)那不就是在这个窗体里吗?
直接disopose()就好了.
要不就this.dispose();
=====================================
"谁告诉你add(XXX)和disopose()都要在reg类里.我就要是前者在,后者就不让他在reg类里,而且还要关闭reg类对象窗口.根本没理解我的意思.我说的够清楚了,你一眼带过看的明白吗,你再去看看我的题干."
又看了一遍 发现这次根本看不明白了...
=====================================
====================================
"this.dispose()我当然知道.但这句话在另一个类中写,试问this还表示reg的对象吗,显然不行的.我现在就要在另一个类中写.第二个人也是乱说,只有第一个回答可能正确,你们两个都在乱说."
如果是在另一个类中写就需要当前窗体当作参数传递.
import javax.swing.JFrame;
public class Reg extends JFrame {
/**
* 创建一个新的窗体
* */
public void newWindows(){
new newReg(this);//将自己传递给newReg这个窗口
}
}
这是另外一个窗体.
public class newReg extends JFrame{
public newReg(JFrame father) {//接收父窗口
father.dispose();
}
}
====================================
那是你思维跟我不一样.我已在reg类中用了好多句add(xxx);来添加组件.现在其对象窗口,包括里面的组建都能正常显示.
我现在想在另一个类中,比如mm类中用dispose()方法去关掉reg类窗口,我若是再用this.dispose()那this指的就是mm类的对象了.现在你懂了吧.你再回去看看我的题干对不对.再告诉我题干的答案.
====================================
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
问问题的都是爷.
"那是你思维跟我不一样."
你们全家思维都和别人不一样.
.别给我发消息了。问题已经给你解决了。
❹ JAVA如何用按钮关闭窗体
很久没有用过界面编程了,就当复习一下了,哈哈
如一楼所说的,给按钮加一个监听器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();
}
}
❺ java中关闭窗口的方法
1 package applicationGraphicsInOut;
2 import java.awt.*;
3 import java.awt.event.*;
4 public class ApplicationGraphicsInOut {
5 public static void main(String args[])
6 {
7 new FrameInOut();
8 }
9
10 }
11 class FrameInOut extends Frame implements ActionListener
12 {
13 Label prompt;
14 TextField input,output;
15 FrameInOut()
16 {
17 super("图形界面的Java Application程序");
18 prompt=new Label("请输入您的名字");
19 input=new TextField(6);
20 output=new TextField(20);
21 setLayout(new FlowLayout());
22 add(prompt);
23 add(input);
24 add(output);
25 input.addActionListener(this);
26 setSize(300,200);
27 setVisible(true);
28 }
29 public void actionPerformed(ActionEvent e)
30 {
31 output.setText(input.getText()+",欢迎你");
32 }
33 }
该程序在Eclipse下运行通过,但是就是不能关不掉!
什么原因呢?
其中有以下几种解决方法:
1:
把main函数改为如下
1 public static void main(String args[])
2 {
3 Frame fr=new FrameInOut();
4 fr.addWindowListener(new java.awt.event.WindowAdapter()
5 {
6 public void windowClosing(java.awt.event.WindowEvent e)
7 {
8 System.exit(0);
9 }
10 });
11
12 }
这种方法我有点不解,addWindowListener()括号里是怎么回事,我有点纳闷,我还没见过这样的形式,不过我猜可能是实现了java.awt.event.WindowAdapter()类里面的一个抽象方法windowClosing(),但是我真没有见过这种格式,求解释。
2:
对WINDOWS_CLOSING事件做出响应,每个窗口都有3个控制图标,其中最小化和最大化操作Frame可自动完成,而关闭窗口的操作不能通过单击关闭图标实现,需要程序专门书写有关的代码,其实这种方法与上一种一样,则不过换了一种格式,一种初学者更明白易懂的格式。
在FrameInOut()构造函数里面添加监听函数,添加监听函数之后构造函数如下:
FrameInOut()
{
super("图形界面的Java Application程序");
prompt=new Label("请输入您的名字");
input=new TextField(6);
output=new TextField(20);
setLayout(new FlowLayout());
addWindowListener(new HandleWin()); //添加监听函数,引发WindowEvent事件
add(prompt);
add(input);
add(output);
input.addActionListener(this);
setSize(300,200);
setVisible(true);
}
其中HandleWin()为内部类,主要实现WindowListener借口,添加监听之后会引发WindowEvent类代表的所以七中事件,具体情况如下:
(1)WINDOW_ACTIVATED:代表窗口被激活(在屏幕的最前方待命)。
(2)WINDOW_DEACTIVATED:代表窗口失活(其他窗口被激活后原活动窗口失活)。
(3)WINDOW_OPENED:代表窗口被打开。
(4)WINDOW_CLOSED:代表窗口被关闭(关闭窗口后发生)。
(5)WINDOW_CLOSING:代表窗口正在被关闭(指关闭前。如单击窗口标题栏上的关闭按钮时)。
(6)WINDOW_ICONIFIED:代表使窗口最小化成图标。
(7)WINDOW_DEICONIFIED:代表使窗口从图标恢复
在WindowEvent类的主要方法有:
public window getWindow();
此方法返回引发当前WindowEvent事件的具体窗口对象,与getSource()方法返回的是相同的事件引用。
HandleWin定义如下:
class HandleWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
(e.getWindow()).dispose();
System.exit(0);
}
}
HandleWin是窗口事件的裁剪类WindowAdapter的子类,重载了WindowClosing()方法。
当然也可以这样写HandleWin
1 class HandleWin implements WindowListener
2 {
3 public void windowClosing(WindowEvent e)
4 {
5 (e.getWindow()).dispose();
6 System.exit(0);
7 }
8
9 @Override
10 public void windowActivated(WindowEvent arg0) {
11 // TODO Auto-generated method stub
12
13 }
14
15 @Override
16 public void windowClosed(WindowEvent arg0) {
17 // TODO Auto-generated method stub
18
19 }
20
21 @Override
22 public void windowDeactivated(WindowEvent arg0) {
23 // TODO Auto-generated method stub
24
25 }
26
27 @Override
28 public void windowDeiconified(WindowEvent arg0) {
29 // TODO Auto-generated method stub
30
31 }
32
33 @Override
34 public void windowIconified(WindowEvent arg0) {
35 // TODO Auto-generated method stub
36
37 }
38
39 @Override
40 public void windowOpened(WindowEvent arg0) {
41 // TODO Auto-generated method stub
42
43 }
44 }
❻ 如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。
首先分析需要的GUI技术
java中一般使用swing 和awt技术来实现图形界面,Swing组件较多,功能比较强大,所以这里使用Swing组件来实现。窗口使用(JFrame),按钮使用(JButton)。
设想一个符合题目需求的场景
两个窗口关联并且跳转,最常见的场景就是登陆了。
登陆窗口,输入用户名和密码,如果成功就跳转到主窗口
核心逻辑,跳转窗口的关键代码
一般可以隐藏本窗口(setVisible(false);),显示新窗口来实现窗口的跳转。
但是隐藏窗口,会在后面浪费系统资源。
如果不再使用该窗口,应该彻底销毁(dispose();),释放系统资源
代码和注释
LoginFrame 类
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//LoginFrame登陆窗口功能实现用户登陆,如果成功就跳转
//LoginFrame继承于窗口类,并实现ActionListener接口
{
//申明需要的组件
JButtonjb1,jb2;//按钮
JTextFieldjtf1;//文本框
JPasswordFieldjpf1;//密码框
publicLoginFrame(){
//窗口属性的设置
setTitle("登陆窗");//窗口标题
setSize(300,180);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口则退出虚拟机
setLayout(newFlowLayout());//设置布局流式布局
JPaneljp=newJPanel(newGridLayout(4,1));//设置面板为表格布局4行1列
//第一行
JPaneljp1=newJPanel();
JLabeljl1=newJLabel("账号");
jtf1=newJTextField(12);
jp1.add(jl1);
jp1.add(jtf1);
jp.add(jp1);
//第二行
JPaneljp2=newJPanel();
JLabeljl2=newJLabel("密码");
jpf1=newJPasswordField(12);
jp2.add(jl2);
jp2.add(jpf1);
jp.add(jp2);
//第三行
JPaneljp3=newJPanel();
jb1=newJButton("登陆");
jb1.addActionListener(this);//添加动作响应器
jb2=newJButton("重置");
jb2.addActionListener(this);//添加动作响应器
jp3.add(jb1);
jp3.add(jb2);
jp.add(jp3);
//第四行
JPaneljp4=newJPanel();
JLabeljl3=newJLabel("提示:账号admin密码123");
jl3.setForeground(Color.DARK_GRAY);
jp4.add(jl3);
jp.add(jp4);
add(jp);
}
//动作响应
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根据动作命令,来进行分别处理
if(cmd.equals("登陆")){
Stringid=jtf1.getText();//取得用户名
Stringkey=newString(jpf1.getPassword());//取得密码
if(id.equals("admin")&&key.equals("123")){//判断是否登录成功
//如果登录成功
setVisible(false);//本窗口隐藏,
newMainFrame(id).setVisible(true);//新窗口显示
dispose();//本窗口销毁,释放内存资源
}else{
//如果登录失败弹出提示
JOptionPane.showMessageDialog(this,"用户名或者密码错误.","通知",JOptionPane.ERROR_MESSAGE);
clearText();//清空文本框密码框的输入
}
}elseif(cmd.equals("重置")){
clearText();
}
}
privatevoidclearText(){//清空文本框,密码框的输入
jtf1.setText("");
jpf1.setText("");
}
//main方法,程序的入口
publicstaticvoidmain(String[]args){
newLoginFrame().setVisible(true);//创建登录窗口,并可见
}
}
MainFrame类
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
{
publicMainFrame(Stringname){
setTitle("主窗口");//标题
setSize(300,260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPaneljp=newJPanel();
JLabeljl1=newJLabel("欢迎");
JLabeljl2=newJLabel(name);
jl2.setForeground(Color.BLUE);//设置文本颜色
JLabeljl3=newJLabel("使用系统.");
jp.add(jl1);
jp.add(jl2);
jp.add(jl3);
add(jp,BorderLayout.NORTH);
JTextAreajta=newJTextArea();
jta.setLineWrap(true);
jta.append("消息提示");
jta.append("消息!通知~!");
JScrollPanejsp=newJScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(jsp);
JPaneljp2=newJPanel();
JButtonjb=newJButton("退出");
jb.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);//退出
}
});
jp2.add(jb);
add(jp2,BorderLayout.SOUTH);
}
}
运行效果图
❼ java 用按钮关闭窗口
这个不对,这个是设置标题栏上的按钮退出方式的
你可以按钮上添加事件把窗口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);
❽ java设置关闭窗口按钮
package org.t20110219.test;
/**
* 修改后的代码
* 能关闭,
* 希望能帮助你
*/
import java.awt.*;
import java.awt.event.*;
public class MainProgram extends Frame implements ActionListener,WindowListener
{
int i;
Button b1 = new Button("确定");
Button b2 = new Button("关闭");
void FlowLayoutEX()
{
this.setTitle("布局管理器");
this.setLayout(new FlowLayout());
this.add(b1);
b1.addActionListener(this);
this.add(b2);
b2.addActionListener(this);
this.addWindowListener(this);
this.setBounds(100, 100, 250, 250);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
/**------------修改代码--------------*/
/**
* 修改 合理就可以了
* e.getSource() 可以得到 你点击了哪个 按钮
* 判断之后就可以 设定 对应的 操作了
*/
if(e.getSource()==b2){
System.exit(0);
}else{
i++;
Button bi = new Button("按钮"+i);
this.add(bi);
this.show(true);
}
}
public void windowClosing(WindowEvent f)
{
System.exit(0);
}
public void windowOpened(WindowEvent f){}
public void windowClosed(WindowEvent f){}
public void windowIconified(WindowEvent f){}
public void windowDeiconified(WindowEvent f){}
public void windowActivated(WindowEvent f){}
public void windowDeactivated(WindowEvent f){}
public static void main(String args[])
{
MainProgram window = new MainProgram();
window.FlowLayoutEX();
}
}
❾ java窗口的关闭按钮
eg: Button close = new Button("关闭");
Button test1= new Button("测试一");
Button test2= new Button("测试二"); ...................
close.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
judeg(evt);
}
});
test1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
judeg(evt);
}
});
test2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
judeg(evt);
}
});
private void judeg(java.awt.event.ActionEvent evt) {
JButton button = (JButton)evt.getSource();
if(button == close){
//do something here
} else if(button == test2){
//do something here
}else if(button == test3){
//do something here
}
}
❿ java 怎么 通过 按钮 主窗口 关闭 新建的窗口
很久没有用过界面编程了,就当复习一下了,哈哈
如一楼所说的,给按钮加一个监听器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){
//关闭整个应用程序.如果只是是想关闭当前窗口,可以用