導航:首頁 > 編程語言 > java窗口按鈕關閉

java窗口按鈕關閉

發布時間:2022-09-01 18:02:28

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程序中,當點擊一個按鈕後,關閉當前窗口,開啟一個新的窗口。

java中一般使用swing 和awt技術來實現圖形界面,Swing組件較多,功能比較強大,所以這里使用Swing組件來實現。窗口使用(JFrame),按鈕使用(JButton)。


兩個窗口關聯並且跳轉,最常見的場景就是登陸了。

登陸窗口,輸入用戶名和密碼,如果成功就跳轉到主窗口


但是隱藏窗口,會在後面浪費系統資源。

如果不再使用該窗口,應該徹底銷毀(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){
//關閉整個應用程序.如果只是是想關閉當前窗口,可以用

閱讀全文

與java窗口按鈕關閉相關的資料

熱點內容
姜恩惠電影法利賽人雲盤 瀏覽:786
程序員的焦慮有哪些 瀏覽:348
10部緬甸電影 瀏覽:207
程序員賓利 瀏覽:731
初一編程軟體教學 瀏覽:918
ftp伺服器的地址是哪個 瀏覽:15
圖像模糊處理演算法 瀏覽:34
法國啄木鳥電影有哪些 瀏覽:579
javanio內存 瀏覽:549
react源碼有多長 瀏覽:60
聖經舊約電影 瀏覽:704
你經常去電影院嗎英文翻譯 瀏覽:202
androidzip換膚 瀏覽:761
按f8怎麼進命令行界面 瀏覽:607
dn20加密防盜閥 瀏覽:366
金剛鐵拳電影 瀏覽:223
小說納米程序員 瀏覽:309
國外一個換腦子的電影 瀏覽:507
安卓開屏壁紙怎麼設置 瀏覽:582
加密ceb轉pdf 瀏覽:234