Java Swing 主要知识提取

GUIGUI 工具集(了解)AWT本地平台捆绑,依靠本地系统决定组件外观和功能,重量级组件SWING大多Swing组件不依赖本地窗口部件们可以在每个平台实现每个窗口部件。缺省的情况下采用本地平台的显示外观不依赖于底层平台的Swing组件,称为轻量级组件SWT吸收了AWT 和 Swing实现的最好部分,保证了与本地窗口部件相当的外观和响应度区别AWT、SWT依赖底层平台,不同操作系统显示效果不一样Swing 基于 AWT 架构之上,保持了平台独立的特点AWT
摘要由CSDN通过智能技术生成

GUI

GUI 工具集(了解)

AWT

  • 本地平台捆绑,依靠本地系统决定组件外观和功能,重量级组件

SWING

  • 大多Swing组件不依赖本地窗口部件们可以在每个平台实现每个窗口部件。

  • 缺省的情况下采用本地平台的显示外观

  • 不依赖于底层平台的Swing组件,称为轻量级组件

SWT

  • 吸收了AWT 和 Swing实现的最好部分,保证了与本地窗口部件相当的外观和响应度

区别

  • AWT、SWT依赖底层平台,不同操作系统显示效果不一样
  • Swing 基于 AWT 架构之上,保持了平台独立的特点
  • AWT 和 SWT有对本地组件的引用,必须正确释放这些引用

组件分类(了解)

顶层容器

JFrame, JApplet, JDialog, JWindow

这四个组件被称为重量级组件

根面板结构(了解)

  • 玻璃面板: 默认不可见。接受鼠标键盘等响应事件
  • 内容面板: 一个可见的容器,不包括菜单条
  • 工具条: 可选组件
  • 分层面板:定位内容面板和菜单条

可插入式外观

  • Swing将组建和组建绘制相分离,因此可以动态改变外观不影响程序功能
  • UI为结尾的类,是Swing组建提供用户界面的,实际上是进行组件绘制的类
  • LookAndFeel子类提供了构建特定外观的全局信息,包括颜色,字体,边框等。

UIManager

  • 包含嵌套类LookAndFeelInfo来维护外观信息

  • 调用UIManager类的setLookAndFeel来设定当前外观

    looks = UIManager.getInstalledLookAndFeels()
    UIManager.setLookAndFeel(looks[value ].getClassName())
    SwingUtilities.updateComponentTreeUI(this)
    

事件处理机制

事件处理机制包含三个部分

  • 事件源 与用户进行交互的某个GUI组件
  • 事件对象 事件的信息例如 ActionEvent 包含在 java.awt.event包中 是类AWTEvent或其子类的示例对象
  • 监听器 接受事件对象,并处理事件对象
JButton btn = new JButton("按钮") // btn 代表事件源
btn.addActionListener(new ActionListener() {
   
    @Override
    public void ActionPerformed(ActionEvent e) {
   
        // TODO Auto-generated method stub
    }
})
    
// 上面的匿名内部类为监听器
// ActionEvent 为事件对象

事件监听器接口与事件监听器(了解)

  • 事件的处理方法都被定义在继承了 java.util.EventListener 类的 EventListener 接口中
  • 任何一个类想操作EventListener接口中定义的方法,都必须实现这个接口,也就是成为事件监听者

GUI事件处理关键过程

  1. 为将要产生事件的组件注册监听者 (addActionListner)
  2. 为监听者实现事件处理的方法 (ActionPerformed)

java事件类型(了解)

  • java.awt.event中定义的事件类型同时为AWT和Swing组件所使用
  • 一些新的Swing组件事件类型被定义在javax.swing.event中

事件

ActionEvent

一些方法

ActionEvent e;
e.getSource(); // 获得事件源对象的引用
e.getActionCommand(); // 获得文本框中数的文本

ItemEvent

一些方法

ItemEvent e;
e.getStateChange(); // 获得是选中还是未选中
// 例如 e.getStateChange() === ItemEvent.SELECTED // 表示选中

ListSelectionEvent

一些方法

ListSelectionEvent e;

changeEvent

一些方法

changeEvent e;

MouseEvent

一些方法

mouseEvent e;
e.getX();
e.getY(); // 鼠标x,y坐标
e.isPopupTrigger() // 鼠标右键
/**
Pane.addMouseListener(new MouseListener() {
 
})
pane.addMouseMotionListener(new MouseMotionListner(){

})
// 第一个主要是一些瞬发的事件 有 mouseClickd 等五个方法
// 第二个主要是移动 有 mouseMoved mouseDragged 两个方法
*/

// 由于这些接口内方法太多,有时候只要一个方法要写很多没用的方法,怎么办
// 适配器类
// MouseListener -> MouseAdpater
    
e.getClickCount(); // 鼠标单击次数
e.getMetaDown(); // 右键
e.getAltDown(); // 中键
// 以上两个都不是那么就是左键
KeyEvent
Pane.addKeyListener(new KeyListner() {
   
    // ....
})
    
1. keyPressed() // 任意键按下
2. keyTyped(); // 不为动作键按下
3. keyReleased(); // 任意键松开

KeyEvent e;
e.getKeyCode();
e.getKeyChar();
e.geyKeyText(e.getKeyCode());

组件

JFrame


特点
  • 是具有标题栏和边框的窗口

  • JFrame是 java.awt.Frame 的子类

  • JFrame不完全是由Java编写的

  • 窗口是本地平台的窗口显示工具集提供的,不同平台窗口将有所不同的

构造方法
public JFrame()
public JFrame(String title)
内部方法
JFrame f = new JFrame("示例");
f.setSize(100, 200); // width and height
f.setVisible(true); // 显示窗口
f.setLocationRelativeTo(null); //设置居中
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
// 可以选择
EXIT_ON_CLOSE 退出
HIDE_ON_CLOSE 隐藏
DO_NOTHING_ON_CLOSE 什么都不做(关不掉了)
f.setLayout(new FlowLayout());
// 可以选择各种布局
// 这些布局一般都在 java.awt包内
f.add(Component c)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值