GUI
图形用户界面
swing框架
java.awt.Component
component 是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互
javax.swing.JOptionPane
选项面板类
javax.swing.JFileChooser
文件选择类
javax.swing.JColorChooser
颜色选择类
java.awt.Canvas
Canvas 组件表示屏幕上一个空白矩形区域,应用程序可以在该区域内绘图,或者可以从该区域捕获用户的输入事件。
应用程序必须为 Canvas 类创建子类,以获得有用的功能(如创建自定义组件)。必须重写 paint 方法,以便在 canvas 上执行自定义图形。
类说明文档
java.awt.Container
容器类
javax.swing.JFrame
顶级容器窗口类
Java虚拟机统一负责绘图操作的调度
当需要在组件中显示信息时,程序员应当调用组件的重绘方法repaint()
Java虚拟机在接收到绘图请求后会调用组件的绘图方法paint()
继承并扩展组件类,重写组件的绘图方法paint()
注:程序员不要直接调用组件的paint()方法,而应通过repaint()方法进行间接调用
javax.swing.JDialog
模式对话框:用户必须完成对话框所规定的数据输入或功能选择,然后才能返回父窗口,继续操作程序。模式对话框打开后,本程序中的其他窗口都被禁止操作
非模式对话框:并不会影响用户操作本程序中的其他窗口,非模式对话框可以与其他窗口同时操作
javax.swing.JComponent
除顶层容器之外的所有Swing组件的基类
Javax.swing.JPanel
子容器
JPanel() 创建一个具有双缓冲和流动布局的新JPanel。
JPanel(booleanisDoubleBuffered) 创造具有FlowLayout布局和指定的缓冲策略的新JPanel。
JPanel(LayoutManagerlayout) 创建一个具有双缓冲和指定布局的新JPanel。
JPanel(LayoutManagerlayout,booleanisDoubleBuffered) 创建一个指定缓冲策略和指定布局的新JPanel。
PanelUI getUI() -返回渲染该组件的PanelUI对象
String getUIClassID() -获取渲染组件的类的名字
protected String paramString()- 返回此JPanel的字符串表示。此方法仅用于调试目的,返回的字符串的内容和格式在实现中可能会有所不同。返回的字符串可能是空的,但可能不是空的。
void setUI(PanelUI ui) -设置渲染该组件的外观和感觉的对象为ui
void updateUI() -更当前的UI属性
javax.swing.JMenuBar
菜单栏
说明文档
javax.swing.JToolBar
工具栏
说明文档
图形组件
javax.swing.text.JTextComponent
文本组件类
javax.swing.JTextField
文本字段类
javax.swing.JTextArea
文本区域类
javax.swing.AbstractButton
抽象按钮类
javax.swing.JButton
按钮类
javax.swing.JCheckBox
复选框
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)
// 设置复选框是否选中状态
void setSelected(boolean b)
// 判断复选框是否选中
boolean isSelected()
// 设置复选框是否可用
void setEnabled(boolean enable)
// 设置图片和文本的间距
void setIconTextGap(int iconTextGap)
// 添加状态改变监听器
void addChangeListener(ChangeListener l)
javax.swing.JRadioButton
单选按钮
// 设置单选按钮的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)
// 设置单选按钮是否选中状态
void setSelected(boolean b)
// 判断单选按钮是否选中
boolean isSelected()
// 设置单选按钮是否可用
void setEnabled(boolean enable)
// 设置单选按钮在 默认、被选中、不可用 时显示的图片
void setIcon(Icon defaultIcon)
void setPressedIcon(Icon pressedIcon)
void setDisabledIcon(Icon disabledIcon)
// 设置图片和文本的间距
void setIconTextGap(int iconTextGap)
// 添加状态改变监听器
void addChangeListener(ChangeListener l)
// 创建一个按钮组
ButtonGroup btnGroup = new ButtonGroup();
javax.swing.JLabel
标签类
javax.swing.JComboBox
下拉列表框
addActionListener(ActionListener l)
添加 ActionListener。
addItem(Object anObject)
为项列表添加项。
addItemListener(ItemListener aListener)
添加 ItemListener。
configureEditor(ComboBoxEditor anEditor, Object anItem)
利用指定项初始化编辑器。
getEditor()
返回用于绘制和编辑 JComboBox 字段中所选项的编辑器。
getItemAt(int index)
返回指定索引处的列表项。
getItemCount()
返回列表中的项数。
getModel()
返回 JComboBox 当前使用的数据模型。
getRenderer()
返回用于显示 JComboBox 字段中所选项的渲染器。
getSelectedIndex()
返回列表中与给定项匹配的第一个选项。
getSelectedItem()
返回当前所选项。
insertItemAt(Object anObject, int index)
在项列表中的给定索引处插入项。
isEditable()
如果 JComboBox 可编辑,则返回 true。
removeAllItems()
从项列表中移除所有项。
removeItem(Object anObject)
从项列表中移除项。
removeItemAt(int anIndex)
移除 anIndex 处的项。
setModel(ComboBoxModel aModel)
设置 JComboBox 用于获取项列表的数据模型。
setRenderer(ListCellRenderer aRenderer)
设置渲染器,该渲染器用于绘制列表项和从 JComboBox 字段的列表中选择的项。
setSelectedIndex(int anIndex)
选择索引 anIndex 处的项。
setSelectedItem(Object anObject)
将组合框显示区域中所选项设置为参数中的对象
javax.swing.JList
列表框
类说明文档
javax.swing.JTable
二维表格
类说明文档
布局管理
流式布局(FlowLayout)
w.setTitle( "流式布局FlowLayout" ); // 设置窗口标题
Container cp = w.getContentPane(); // 获得窗口w的内容面板
FlowLayout fl = new FlowLayout;
cp.setLayout(fl);
cp.validate(); // 检查并自动布局容器里的组件
边框布局(BorderLayout)
w.setTitle( "边框布局BorderLayout" ); // 设置窗口标题
Container cp = w.getContentPane(); // 获得窗口w的内容面板
cp.setLayout( new BorderLayout() );
cp.add( btn[0], BorderLayout.NORTH ); // 添加组件
cp.add( btn[1], BorderLayout.SOUTH );
cp.add( btn[2], BorderLayout.WEST );
cp.add( btn[3], BorderLayout.EAST );
cp.add( btn[4], BorderLayout.CENTER );
cp.validate(); // 检查并自动布局容器里的组件
网格布局(GridLayout)
w.setTitle( "网格布局GridLayout" ); // 设置窗口标题
Container cp = w.getContentPane();
cp.setLayout( new GridLayout(3, 3) ); // 3行3列的网格
卡片式布局(CardLayout)
w.setTitle( "卡片式布局CardLayout" );
Container cp = w.getContentPane();
CardLayout cl = new CardLayout(); // 创建卡片式布局对象
cp.setLayout( cl ); // 将内容面板设为卡片式布局
for (int n = 0; n < btn.length; n++) // 添加组件
cp.add( btn[n] );
cp.validate(); // 检查并自动布局容器里的组件
cl.first( cp ); // 显示第一张卡片
cl.next( cp ); // 显示下一张卡片
cl.previous( cp ); // 显示上一张卡片
java.awt.Graphics
java.awt.Color
java.awt.Font
Java事件响应机制
用户触发了某种事件(event):用户操作某个组件
事件源(event source): 用户所操作的组件
事件类:区分用户的不同操作
监听器(listener)接口:每种事件的一个算法接口
1.定义实现某个监听器接口的监听器类 或 使用匿名类直接创建监听器对象
2.为图形组件注册(或称添加)一个监听器对象
3.当用户操作图形组件触发某个事件时,Java虚拟机会调用该图形组件预先注册好的监听器对象中的处理方法
– 简化事件监听器代码:匿名类
button.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
text.setText( "你好,世界!");
}
} );
Java API中常用的事件类
Java API中各事件类的监听器接口
java.applet.Applet
小应用程序类
详细文档
Java小应用程序是一种早期用于增强HTML网页表现力的技术