java基础整理二十二(图形化界面)


 
第二十二天
图形化界面布局:
FlowLayout(流式布局) BorderLayout(边界布局) GridLayout(网格布局) CardLayout(卡片布局) GridBagLayout(网格包布局)

创建图形化界面:
1,创建Frame窗体 2,对窗体大小进行基本设置 大小 位置 布局 3,定义组件 4,将组件通过窗体的add方法添加到窗体中 5,显示窗体setVisible(true);
import java.awt.*;
class Demo
{
 public static void main(String[]args)
 {
  Frame f = new Frame("窗口");默认边界式布局
  f.setSize(300,200);设置大小
  f.setLocation(300,200);设置显示位置
  f.setLayout(new FlowLayout());设置布局方案
  Button b = new Button("小按钮");创建一个按钮
  f.add(b);添加进按钮
  f.setVisible(true);显示窗口
 }
}

事件监听机制的特点:
1,事件源:awt包或者swing包中的图形界面组件 2,事件:源都有自己特有的对应事件和共性事件
3,监听器:将可以触发某一事件的动作(不止一个动作)封装到监视器中 以上在java中都定义好直接取其对象使用即可
4,事件处理:需要自定义处理方式或默认的
WindowListener的子类WindowAdapter已经实现了WindowListener接口并覆盖其中所有方法,只需继承WindowAdapter方法即可
windowClosing(WindowEvent e)关闭窗口 windowActivated(WindowEvent e)激活窗口 windowOpened(WindowEvent e)打开窗口
按钮添加事件:活动监听器
b.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)

import java.awt.*;
import java.awt.event.*;
class Demo
{
 public static void main(String[]args)
 {
  Frame f = new Frame("窗口");
  f.setSize(300,200);
  f.setLocation(300,200);
  f.setLayout(new FlowLayout());
  Button b = new Button("小按钮");
  f.add(b);
  f.addWindowListener(new Mywin());添加窗体监听器
  f.addWindowListener(new WindowAdapter()匿名内部类方法
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  f.setVisible(true);
 }
}
class Mywin extends WindowAdapter
{
 public void windowClosing(WindowEvent e)
 {
  System.exit(0);
 }
}

定义窗体实例:窗体与事件分开定义
import java.awt.*;
import java.awt.event.*;
class FrameDemo
{
 private Frame f;
 private Button b;
 FrameDemo()
 {
  init();
 }
 private void init()
 {
  f = new Frame("窗口");
  f.setBounds(300,200,300,200);
  f.setLayout(new FlowLayout());
  b = new Button("按钮");
  f.add(b);
  myEvent();
  f.setVisible(true);
 }
 private void myEvent()
 {
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  b.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    System.exit(0);
   }
  });
 }
 public static void main(String[]args)
 {
  new FrameDemo();
 }
}

鼠标事件:
b.addMouseListener(new MouseAdapter()
 public void mouseEbtered(MouseEvent e)鼠标进入
 public void mouseClicked(MouseEvent e)鼠标点击
 e.getClicked()获取鼠标点击次数
键盘事件:
t.addKeyListener(new KeyAdapter()
 public void keyPressed(KeyEvent e)键盘按下
 e.getKeyCode()获取按下的键的值 e.getChar()获取按键ABC
 e.isControlDown() && e.getKeyCode()==KeyEvent.VK_A 表示ctrl键和a键同时按下
 KeyEvent.VK_A获取a键的值 e.isControlDown()判断ctrl键是否按下
 e.consume()不按默认方式处理 TextField 文本框
练习:标题添加目录点按钮显示目录中内容
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class Demo
{
 private Frame f;
 private Button b;
 private TextField tf;
 private TextArea ta;
 Demo()
 {
  info();
 }
 public void info()
 {
  f = new Frame("窗口");
  f.setBounds(300,200,450,350);
  f.setLayout(new FlowLayout());
  b = new Button("按钮");
  tf = new TextField(40);
  ta = new TextArea(10,50);
  f.add(tf);
  f.add(b);
  f.add(ta);
  myEvent();
  f.setVisible(true);
 }
 private void myEvent()
 {
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  b.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    String dirPath = tf.getText();
    File dir = new File(dirPath);
    if(!(dir.exists() && dir.isDirectory()))
     ta.setText("不是目录");
    else
    {
     ta.setText("");
     String[]str = dir.list();
     for(String name:str)
     {
      ta.append(name+"\r\n");
     }
    }
    tf.setText("");
   }
  });
 }
 public static void main(String[]args)
 {
  new Demo();
 }
}

对话框Dialog
Dialog dig = new Dialog(Frame f,提示信息,true);true阻止上层所属对话框操作
dig.setBounds();设置位置大小 dig.setlayout(new FlowLayout());设置布局
Label lab = new Label();封装信息 dig.add(lab); String info = "信息"; lab.setText(info);

创建菜单:
private Frame f = new Frame("窗口");;
private MenuBar mb = new MenuBar();用于往窗口上添加
private Menu m = new Menu("文件");菜单
private MenuItem closeItem = new MenuItem("退出");菜单上的功能选项
m.add(closeItem);
mb.add(m);
f.setMenuBar(mb);

打开文件:
FileDialog open= new FileDialog(f,"我要打开",FileDialog.LOAD);
FileDialog save= new FileDialog(f,"我要保存",FileDialog.SAVE);

jar包双击执行:
将文件封装在包中,然后同自定义配置信息内部Main-Class: package.主类名+Enter 一同 -cvfm 打成jar包
工具文件夹选项文件类型 新建.jar扩展名文件高级 新建open浏览应用程序选择关联上javaw.exe -jar

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值