使用窗口::
* javax.swing.JFrame 使用最多
* javax.swing.JDialog 特指对话框
* javax.swing.JWindow 没有标题栏
* javax.swing.JOptionPane 消息框,输入框,确认框
* javax.swing.JFrame 使用最多
* javax.swing.JDialog 特指对话框
* javax.swing.JWindow 没有标题栏
* javax.swing.JOptionPane 消息框,输入框,确认框
控件(组件:Component):javax.swing.
* 1.面板:JPanel
* 2.按钮:JButton
* 3.文本框:JTextField
* 4.多行文本框:JTextArea
* 5.滚动条:JScrollPane
* 6.密码框:JPasswordField
* 7.单选按钮:JRadioButton
* 8.复选框:JCheckBox
* 9.下拉菜单:JComboBox
* 10.静态文本(标签):JLabel
* 1.面板:JPanel
* 2.按钮:JButton
* 3.文本框:JTextField
* 4.多行文本框:JTextArea
* 5.滚动条:JScrollPane
* 6.密码框:JPasswordField
* 7.单选按钮:JRadioButton
* 8.复选框:JCheckBox
* 9.下拉菜单:JComboBox
* 10.静态文本(标签):JLabel
其他常用控件:javax.swing 用于文件打开或保存
* 1.文件选择框:JFileChooser
* 2.颜色选择框:JColorChooser
* 3.工具栏:JToolBar 用于在菜单栏下方显示工具栏
* 4.列表框:JList 用于选择某些项目
* 5.进度条: JProgressBar
* 6.滑块:JSlider 用于设定某些数值
* 7.树形结构:JTree
* 8.表格:JTable
* 9.选项卡:JTbbedPane
* 10.JInternalFrame 将窗口内容纳多个小窗口
* 1.文件选择框:JFileChooser
* 2.颜色选择框:JColorChooser
* 3.工具栏:JToolBar 用于在菜单栏下方显示工具栏
* 4.列表框:JList 用于选择某些项目
* 5.进度条: JProgressBar
* 6.滑块:JSlider 用于设定某些数值
* 7.树形结构:JTree
* 8.表格:JTable
* 9.选项卡:JTbbedPane
* 10.JInternalFrame 将窗口内容纳多个小窗口
菜单:java中菜单分为菜单条,菜单和菜单项
* 菜单条:javax.swing.JMenuBar
* 菜单:javax.swing.JMenu
* 菜单项:javax.swing.JMenuItem
* 菜单条:javax.swing.JMenuBar
* 菜单:javax.swing.JMenu
* 菜单项:javax.swing.JMenuItem
要改变JFrame的颜色,必须先得到getContentPane(),而不能直接setBackground
GUI编程中,图片的封装形式有两种:
* 1.图像 java.awt.Image 抽象类,无法被实例化
* 2.图标 javax.swing.Icon 接口,无法被实例化,由其子类jvax.swing.ImageIcon来实现
* 1.图像 java.awt.Image 抽象类,无法被实例化
* 2.图标 javax.swing.Icon 接口,无法被实例化,由其子类jvax.swing.ImageIcon来实现
java界面布局管理:
* 由java.awt.LayoutManager来管理,它是一个接口,最常见的实现类如下:java.awt
* FlowLayout 流式布局:组件从左到右,从上到下一次排放 是JPanel的默认布局
* GridLayout 网格布局:将界面布局为一个表格,每格放一个组件
* BorderLayout 边界布局,将组件按东西南北中5个区域放置,每个方向最多放一个组件 是JFrame的默认布局
* 由java.awt.LayoutManager来管理,它是一个接口,最常见的实现类如下:java.awt
* FlowLayout 流式布局:组件从左到右,从上到下一次排放 是JPanel的默认布局
* GridLayout 网格布局:将界面布局为一个表格,每格放一个组件
* BorderLayout 边界布局,将组件按东西南北中5个区域放置,每个方向最多放一个组件 是JFrame的默认布局
java事件处理 需要的条件
* 1.事件必须用一个对象封装
* 2.事件的处理者必须具有监听事件的能力
* 3.事件的处理者必须编写事件处理函数
* 4.必须将事件的发出者和事件的处理者对象绑定起来
* 1.事件必须用一个对象封装
* 2.事件的处理者必须具有监听事件的能力
* 3.事件的处理者必须编写事件处理函数
* 4.必须将事件的发出者和事件的处理者对象绑定起来
java.awt.event.ActionEvent是最常见的一种事件
* 什么情况发出ActionEvent?
* 1.许多控件的单击
* 2.javax.swing.Timer发出的事件
* 3.在JTextField等控件上按Enter键,JButton等控件上按空格键(相当于单击效果)等
* ActionEvent用ActionListener监听
* 什么情况发出ActionEvent?
* 1.许多控件的单击
* 2.javax.swing.Timer发出的事件
* 3.在JTextField等控件上按Enter键,JButton等控件上按空格键(相当于单击效果)等
* ActionEvent用ActionListener监听
处理FocusEvent
* 什么情况发出FocusEvent
* 一般情况下,FocusEvent适用于某些控件Component获得或失去输入焦点时,需要处理的场合。
* FocusEvent用java.awt.event.FocusListener接口接听。该接口中有如下函数:
* 1.void focusGained(FocusEvent e):控件获得焦点时调用
* 2.void focusLost(FocusEvent e):控件失去焦点时调用
* 什么情况发出FocusEvent
* 一般情况下,FocusEvent适用于某些控件Component获得或失去输入焦点时,需要处理的场合。
* FocusEvent用java.awt.event.FocusListener接口接听。该接口中有如下函数:
* 1.void focusGained(FocusEvent e):控件获得焦点时调用
* 2.void focusLost(FocusEvent e):控件失去焦点时调用
* 处理MouseEvent
* (一).鼠标事件 用java.awt.event.MouseListener接口监听
* 1.void mouseClicked(MouseEvent e):鼠标单击
* 2.void mousePressed(MouseEvent e):鼠标按下
* 3.void mouseReleased(MouseEvent e):鼠标释放
* 4.void mouseEntered(MouseEvent e):鼠标进入
* 5.void mouseExited(MouseEvent e):鼠标离开
* (二)鼠标移动事件 用java.awt.event.MouseMotionListener接口监听
* 1.void mouseDraged(MouseEvent e):鼠标拖动
* 2.void mouseMoved(MouseEvent e):鼠标移动
* (一).鼠标事件 用java.awt.event.MouseListener接口监听
* 1.void mouseClicked(MouseEvent e):鼠标单击
* 2.void mousePressed(MouseEvent e):鼠标按下
* 3.void mouseReleased(MouseEvent e):鼠标释放
* 4.void mouseEntered(MouseEvent e):鼠标进入
* 5.void mouseExited(MouseEvent e):鼠标离开
* (二)鼠标移动事件 用java.awt.event.MouseMotionListener接口监听
* 1.void mouseDraged(MouseEvent e):鼠标拖动
* 2.void mouseMoved(MouseEvent e):鼠标移动
java绘图
* java GUI的绘图,属于低级界面开发;前面学到的是在窗体上放置一个个控件,属于高级界面。
* 将图画在画布上,再将画布画在界面上。
绘字符串 可以设置字体,大小,更灵活 drawString函数
绘图片 可以对图片进行裁剪,缩放甚至旋转 drawImage函数
* java GUI的绘图,属于低级界面开发;前面学到的是在窗体上放置一个个控件,属于高级界面。
* 将图画在画布上,再将画布画在界面上。
绘字符串 可以设置字体,大小,更灵活 drawString函数
绘图片 可以对图片进行裁剪,缩放甚至旋转 drawImage函数