编写一个图形界面的Java Application,为用户提供三种关闭窗口的方法

2025-01-03 21:27:41
推荐回答(4个)
回答1:

******************************************************************

 新建类CloseFrame.java,代码如下:

******************************************************************

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

public class CloseFrame extends JFrame implements ActionListener {

 JMenuBar menu;

 JMenu file;

 JMenuItem closeMenu;

 public CloseFrame() {

  menu = new JMenuBar();

  file = new JMenu("文件");

  closeMenu = new JMenuItem("关闭");

  closeMenu.addActionListener(this);

  JButton closeButton = new JButton(" 关闭 ");

  closeButton.addActionListener(this);

  JPanel closePanel = new JPanel();

  closePanel.setLayout(new FlowLayout());

  closePanel.add(closeButton);

  this.add(closePanel, BorderLayout.CENTER);

  this.add(menu, BorderLayout.NORTH);

  menu.add(file);

  file.add(closeMenu);

  this.setBounds(200, 100, 200, 120);

  this.setVisible(true);

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }

 public void actionPerformed(ActionEvent e) {

  System.exit(0);

 }

 public static void main(String[] args) {

  new CloseFrame();

 }

}

******************************************************************

 运行结果如下:

******************************************************************

回答2:

//分别用了菜单栏,按钮和窗口关闭事件来关闭窗口,

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class CloseFrameDemo extends JFrame{

JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem item = new JMenuItem("Exit");
JButton btn_exit = new JButton("Exit");

public CloseFrameDemo() {
super("Demo");
item.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
menu.add(item);
bar.add(menu);
this.setJMenuBar(bar);
this.setSize(300, 300);
btn_exit.setBounds(200, 180, 80, 24);
btn_exit.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
this.setLayout(null);
this.add(btn_exit);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}

public static void main(String[] args) {
new CloseFrameDemo();
}

}

回答3:

package 百度;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.text.*;

public class Groundback extends JFrame implements ActionListener {

Container con=this.getContentPane();// 设置默认容器
// 选择对话筐
JFileChooser filechooser=new JFileChooser("d:");
JTextArea text=new JTextArea(null,5,5); //文本框
int size=12;//字体大小
//添加两个容器
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
JButton jb=new JButton("关闭窗体");

File file=null;// 申明一个保存文件的变量
JButton btnsave=new JButton("保存文本");//保存按钮
JButton btnopen=new JButton("打开文本");//打开文件

//菜单栏
JMenuBar menubar=new JMenuBar();
//菜单1;
JMenu menu1=new JMenu("文件");
JMenuItem menuexit=new JMenuItem("退出");

Groundback(){
super("无标题");
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//菜单添加
menubar.add(menu1);

//按钮事件
jb.addActionListener(this);

//菜单1

menuexit.addActionListener(this);
menu1.addSeparator();//添加分隔线
menu1.add(menuexit);

con.setLayout(new BorderLayout());//排序方式
p1.setLayout(new BorderLayout());//排序菜单栏

//添加组件
p1.add(menubar,BorderLayout.WEST);//添加工具条
p2.add(text);//添加文本框
p2.add(jb);

con.add(p1,BorderLayout.NORTH);
con.add(p2,BorderLayout.SOUTH);
con.add(p3,BorderLayout.CENTER);
con.add(new JScrollPane(text));

this.setLocation(300, 300);
this.setSize(550,400);//宽X高
this.setVisible(true);//显示窗口
}

protected JTextComponent createEditor() {
JTextComponent c = new JTextArea();
c.setDragEnabled(true);
c.setFont(new Font("monospaced", Font.PLAIN, 12));
return c;
}
public void actionPerformed(ActionEvent e) {
// TODO 自动生成方法存根
//文件功能
if(e.getSource()==menuexit){
this.exitfile(); //退出文件
}
if(e.getSource()==jb){
this.exitfile(); //退出文件
}
}

//--------------菜单1的功能------------------
public void exitfile(){
if(file==null&&text.getText().equals("")){
System.exit(0);
}
else{
int b=JOptionPane.showConfirmDialog(null,"..");
if(b==JOptionPane.YES_NO_OPTION){
System.exit(0);
}
if(b==JOptionPane.NO_OPTION){
System.exit(0);
}
}
}
//--------------菜单2的功能------------------
public static void main(String[] args) {
new Groundback();
}

}

回答4:

ActionListener al = new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
/*
Component c;
c=(Component)e.getSource();
while(!(c instanceof JFrame)){
c=c.getParent();
}
c.dispose();
*/
}};

btn.addActionListener(al);
item.addActionListener(al);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);