java中实现退出按钮功能的实现已经布局管理器的使用

 java中实现退出按钮功能的实现以及几种布局方式的简述------三种方法

今天看了布局管理器,写了如下代码:

import java.awt.*;
import java.awt.event.*;

class myFrame {
 public static void main(String args[]){
  Frame f=new Frame("my first");
  Button btn1=new Button("north");//定义一个Button组件
  Button btn2=new Button("south");//定义一个Button组件
  Button btn3=new Button("west");//定义一个Button组件
  Button btn4=new Button("east");//定义一个Button组件
  Button btn5=new Button("Center");//定义一个Button组件
  f.setSize(600,400);//设定窗口大小
  f.setLocation(100, 100);//默认为(0,0),用于设定窗口开始是离左上角距离
  f.setBackground(Color.green);//设定颜色,这个方法内部是一个color类
  f.setForeground(Color.black);//设定字体颜色
  f.setLayout(new BorderLayout());//构造一个组件之间没有间距的新边界布局。
  //f.setLayout(new BorderLayout(20,10));//构造一个组件之间间距为水平为20,垂直为10的新边界布局。
  //f.setLayout(new FlowLayout(FlowLayout.CENTER,5,50));//流式布局管理器, 构造一个新的 FlowLayout,居中对齐,默认的水平和垂直间隙是 5 个单位。
  //f.setLayout(new GridLayout(3,2,10,30));
  //f.setLayout(new CardLayout(100,10));
  f.add(btn1,BorderLayout.NORTH);//把button放在north边
  //f.add(btn1);
  f.add(btn2,BorderLayout.SOUTH);
  f.add(btn3,BorderLayout.WEST);
  f.add(btn4,BorderLayout.EAST);
  f.add(btn5,BorderLayout.CENTER);
}

当我点击退出按钮是发现没有反应,不知道大家是否也遇到过这种情况。实际上我们可以用一下三种方法解决:

方法一:定义一个MyWindowListener类,实现接口WindowListener,因为WindowListener类是抽象的,所以他的所有方法都要实现

class MyWindowListener implements WindowListener//实现接口中所有的方法哦
{
  public void windowOpened(WindowEvent e)
  {

  }
  public void windowClosing(WindowEvent e)
  {
    System.exit(0);
  }
  public void windowClosed(WindowEvent e)//用于点击关闭后进行的操作
  {
  }
  public void windowIconified(WindowEvent e)
  {

  }
  public void windowDeiconified(WindowEvent e)
  {

  }
  public void windowActivated(WindowEvent e)
  {

  }
  public void windowDeactivated(WindowEvent e)
  {

  }
}

写好后,我们只要在原代码中添加代码:f.addWindowListener(new MyWindowListener());就可以了

 

方法二:这个方法需要用到适配器WindowAdapter,我们先定义一个HisWindowListener,定义如下:

class HisWindowListener extends WindowAdapter{
 public void windowClosing(WindowEvent e){
  System.exit(0);
 }
}

 然后我们只要在原代码中添加代码:f.addWindowListener(new HisWindowListener());就可以了

 

方法三:其实这个方法和方法二类似,只是我们不用创建一个类,而是直接在原代码中添加代码:

f.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    System.exit(0);
   }
  });就可以了,因为WindowAdapter()是抽象类,所以我们必须实现它

 

 

最后为了大家更好的理解,我把上面的所有整合到下述代码:

import java.awt.*;
import java.awt.event.*;

class myFrame {
 public static void main(String args[]){
  Frame f=new Frame("my first");
  Button btn1=new Button("north");//定义一个Button组件
  Button btn2=new Button("south");//定义一个Button组件
  Button btn3=new Button("west");//定义一个Button组件
  Button btn4=new Button("east");//定义一个Button组件
  Button btn5=new Button("Center");//定义一个Button组件
  f.setSize(600,400);//设定窗口大小
  f.setLocation(100, 100);//默认为(0,0),用于设定窗口开始是离左上角距离
  f.setBackground(Color.green);//设定颜色,这个方法内部是一个color类
  f.setForeground(Color.black);//设定字体颜色
  f.setLayout(new BorderLayout());//构造一个组件之间没有间距的新边界布局。
  //f.setLayout(new BorderLayout(20,10));//构造一个组件之间间距为水平为20,垂直为10的新边界布局。
  //f.setLayout(new FlowLayout(FlowLayout.CENTER,5,50));//流式布局管理器, 构造一个新的 FlowLayout,居中对齐,默认的水平和垂直间隙是 5 个单位。
  //f.setLayout(new GridLayout(3,2,10,30));
  //f.setLayout(new CardLayout(100,10));
  f.add(btn1,BorderLayout.NORTH);//把button放在north边
  //f.add(btn1);
  f.add(btn2,BorderLayout.SOUTH);
  f.add(btn3,BorderLayout.WEST);
  f.add(btn4,BorderLayout.EAST);
  f.add(btn5,BorderLayout.CENTER);
  //f.addWindowListener(new MyWindowListener());
  f.addWindowListener(new HisWindowListener());
  f.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    System.exit(0);
   }
  });
  f.setVisible(true);//用于显示窗口,如果参数改为false就不显示
 }

}

class MyWindowListener implements WindowListener//实现接口中所有的方法哦
{
  public void windowOpened(WindowEvent e)
  {

  }
  public void windowClosing(WindowEvent e)
  {
    System.exit(0);
  }
  public void windowClosed(WindowEvent e)//用于点击关闭后进行的操作
  {
  }
  public void windowIconified(WindowEvent e)
  {

  }
  public void windowDeiconified(WindowEvent e)
  {

  }
  public void windowActivated(WindowEvent e)
  {

  }
  public void windowDeactivated(WindowEvent e)
  {

  }
}
class HisWindowListener extends WindowAdapter{
 public void windowClosing(WindowEvent e){
  System.exit(0);
 }
}

 

 

有问题的地方欢迎留言,我也希望和大家多多交流

 

 

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值