黑马程序员_JAVA_GUI

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Java.Awt和javax.Swing

重量级(需要调用本地系统方法实现)和轻量级(对系统的依赖性小,增强了可移植性)
java.Swt需要到eclipse网站下载
javax.Swing基于Awt

container组件能添加组件

常见的布局管理器

FlowLayout(流式布局管理器)
从左到右的顺序排列
Panel默认的布局管理器
BorderLayout(边界布局管理器)
东南西北中,只有一个会居中填充
Frame默认的布局管理器
GridLayout(网格布局管理器)
规则的矩阵(如计算器)
GardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵

创建图形化界面

1.创建frame窗体
2.对窗体大小进行基本设置
          如大小,位置,布局
3.定义组件
4.将组件通过窗体的add方法添加到窗体中
5.让窗体显示,通过setVisible(true)

import java.awt.*;
class  AwtDemo
{
     public static void main(String[] args)
     {
          Frame f = new Frame("my awt");
          f.setSize(500,100);
          f.setLocation(300,200);
          f.setLayout(new FlowLayout());

          Button b = new Button("按钮");
          f.add(b);

          f.setVisible(true);//使不可见的窗体可见

          System.out.println("Hello World!");
     }
}

事件监听机制的特点:

1.事件源:就是awt包或者swing包中的那些图形界面组件
2.事件:每一个事件源都有自己特有的对应事件和共性事件
3.监听器:将可以触发某一事件的动作封装到监听器中
以上三者Java已经定义好,直接获取对象就可以用
然后就是对产生的动作进行处理。
4.事件处理


WindowListener接口

只要方法超过3个的Listener一般都有适配器,WindowListener接口的适配器是WindowAdapter抽象类,实现了WindowListener,里面的方法为空,为了方便创建监听器对象避免了使用WindowListener的方法要覆盖七个方法的麻烦,可以需要哪个方法就覆盖哪个方法。

需要导入java.awt.*;java.awt.event.*;

class FrameDemo
{
     private Frame f;
     private Button but;
     Frame()
     {
          init();
     }
     public void init()
     {
          f=new Frame("my frame");
          //初始化窗体参数
          but= new Button("my button");l
          f.add(but);
          f.setVisible(true);
          myEvent();
          //显示窗体
          private void myEvent()
          {
f.addWindowListener(new WindowAdapter(){
     public void windowClosing(WindowEvent e)
     {
          System.out.println("按下关闭时执行的动作");
     }
     public void windowActivated(WindowEvent e)
     {
          System.out.println("窗口活动时执行的动作");
     }
     public void windowOpened(WindowEvent e)
     {
          System.out.println("当窗口打开时执行的动作");
     }
});
                    but.addActionListener(new ActionListener()
                    {
                         public void actionPerformed(ActionEvent e)
                         {
                              System.out.println("触发按钮执行的动作");
                         }
                    })
                    but.addMouseListener(new MouseAdapter(){
                         public void mouseClicked(MouseEvent e)
                         {
                              if(e.getClickCount()==2)
                                   System.out.println("双击");
                         }     
                    })
                    but.addKeyListener(new KeyAdapter()
                    {
                         public void keyPressed(KeyEvent e)
                         {
                              if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
                                   按下回车键执行的代码;
                         }
                    })
          }
          
     }
}

对话框依赖于窗体

private Dialog da;
private Label la;
private Button bo;

da = new Dialog(f," 提示信息",true);
//和frame相同具有边框布局
la = new Label();
bo = new Button("确定");

da = add(la);
da = add(bo);

da.setVisible(true);

菜单栏通过setMenuBar()向窗体添加菜单

MenuBar是一个大的菜单条
Menu可具有子条目
MenuItem是最终子条目项

private Frame f;
private MenuBar mb;
private Menu m;
private MenuItem closeItem;

mb = new MenuBar();
m = new Menu("文件");
closeItem = new MenuItem("退出");

f.setMenuBar(mb);
mb.add(m);
mb.add(closeItem);

文件对话框FileDialog打开保存

openDia = new FileDialog(f,"打开",FileDialog.LOAD);
saveDia = new FileDialog(f,"保存",FileDialog.SAVE);
openDia.setVisible(true);


打包

javac -d 存储目录 要编译的Java文件
编辑配置文件
再存储包的目录建立文件写入配置信息:
Main-Class: 目录名.主类文件(最后的回车是结束符不能省)
jar -cvf 命名 配置文件 要打包的文件夹

window中需要注册打开jar的文件类型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值