1.GUI组件的左上角坐标默认为(0,0)
2.从左上角到右下角,水平坐标x与垂直坐标y增加
也就是说其坐标系如下
——————————————————————>x
|
|
|
|
|
|
|
|
y
3.坐标的单位是像素
在执行paint方法时,系统会传递一个指向特定平台的Graphics子类的图形对象g
Graphics2D是Graphics的抽象子类
Swing组件实在原来AWT组件上扩展而来的
JButton
JCheckBox
JScrollbar
都是JComponent类的子类
Component类
包含paint,repaint类,可以在屏幕上绘制组件
Container类
容纳相关组件
包括add方法,用来添加组件
包括setLayout方法,用来设置布局
顶层容器(JFrame,JDialog,JApplet)
JFrame
主窗口
JFrame(String title);
JFrame f1=new JFrame(String title);
创建一个标题为title的主窗口
JDialog
JApplet
————————————————————————————————————
中间层容器(一般用途,特殊用途)
一般用途
JPanel
JScrollPane
JSplitPane等
特殊用途
JPanel
JPanel j1=new JPanel();
默认使用FlowLayout布局
JScrollPane
JToolBar
工具栏
————————————————————————————————————
原子组件
JButton
按钮组件
JButton button = new JButton("按钮名称");
JLabel
显示文本的组件
JLabel label = new JLabel("文本标签显示内容");
TextArea
TextArea ta=new TextArea("输入区域默认内容");
JTextField
用于输入的文本域
JTextField useText = new JTextField(20);
参数为column数
JPasswordField
和输入文本域类似,,但是输入的信息会以.代替,保证密码(password)的安全性
JMenuBar
菜单条
JMenuBar jb=new JMenuBar();
————————————————————————————————————
布局
example:
setLayout(new FlowLayout());
f.setLayout(new FlowLayout());
BorderLayout
FlowLayout
JPanel默认使用的布局管理器,只是简单地把组件放在一行,若容器不足够容纳所有组件,则新起一行
GridLayout
按照指定的行数和列数将界面分成格子
BoxLayout
将组件放在单一的列或行中
SpringLayout
能够精确指定组件之间的间距
CardLayout
内部类可以非常方便的编写事件驱动程序
————————————————————————————————————
事件处理
鼠标移动,单双击鼠标各个按钮,单击按钮等等
Swing通过事件对象来包装事件
事件源
与用户进行交互的GUI组件,表示事件来自于哪个组件或者对象
事件监听器
负责监听事件并作出响应
一个事件源可以注册多个事件监听器,每个监听器又可以对多种事件进行响应
通过事件源的addxxxListener方法被注册到某个事件源上
要实现事件监听器接口就要实现接口中所有的方法,即便是一对空的花括号也要写,即空方法体也要写
如果有Adapter适配器类,那就不需要写空方法体,因为空方法体已经提前实现好了
事件对象
封装了有关已发生的事件的信息
ActionEvent
发生在按下按钮,选择了一个项目,在文本框中按下回车键
ItemEvent
ChangeEvent
————————————————————————————————————
零散实用
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
设置程序默认关闭功能
f.setSize(350,200);
第一个参数为宽度width,第二个参数为高度height
f.setVisible(true);
设置界面可见