Java Swing学习随笔

Swing是轻量级组件,可插入外观组件
 
 
 
Swing组件中大多数GUI组件都是Component类的子类或间接子类,JComponent类是Swing组件各种特性的存放位置,这些组件的特性包括设定组件边界,GUI组件自动滚动等
 
 
组件名称 定义
JButton 代表Swing按钮,按钮可以带一些图片或文字
JCheckBox 代表Swing中的复选框组件
JComBox 代表下拉列表框,可以在下拉显示区域显示多个选项
Frame 代表Swing的框架类
JDialog 代表Swing版本的对话框
JLabel 代表Swing中的标签组件
JRadioButton 代表Swing的单选按钮
JList 代表能够在用户界面中显示一系列条目的组件
JTextField 代表文本框
JPasswordField 代表密码框
JTextArea 代表Swing中的文本区域
JOptionPane 代表Swing中的一些对话框
 
JFrame有最大化,最小化,关闭等按钮
JFrame jf = new JFrame(title);
Container container = jf.getContentPane();
container.add(new JButton(“按钮”));
Container.remove(new JButton(“按钮”));
 
JFrame创建的都是初识不可兼得,使用setVisible(true)方法使窗体可见,setSize设置窗体大小
setDefaultCloseOperation()方法关闭窗体
DO_NOTHING_ON_CLOSE 什么都不做就将窗体关闭
DISPOSE_ON_CLOSE 任何注册监听程序对象后会自动隐藏并释放窗体
HIDE_ON_CLOSE 隐藏窗口的默认窗口关闭
EXIT_ON_CLOSE 退出应用程序默认窗口关闭
 
Icon接口创建图标
三个方法:
Public int getIconHeight()
Public int getIconWidth()
Public void paintIcon(Component arg0, Graphics arg1, int arg2, int arg3):实现在指定坐标位置画图
 
ImageIcon类根据现有图片创建图标,ImageIcon类实现了Icon接口
Public ImageIcon()创建一个对象,可以通过setImage(Image image)方法进行设置图片
Public ImageIcon(Image image)直接从图片源创建图标
Public ImageIcon(Image image, String description) 除了可以从图片源创建图标之外,还可以为这个图标添加简短的描述,但这个描述不会在图标上显示,可以使用getDescription()方法获取这个描述
Public ImageIcon(URL url) 利用位于计算机网络上的图像文件创建图标
 
绝对布局
Container.setLayout(null)取消布局管理器
Component.setBounds()设置每个组件的大小与位置
 
流布局管理器
最基本布局管理器,从左到右摆放组件,直到占据了这一行的所有空间,然后再向下移动一行
默认情况下,组件在每一行都是居中排列的。
 
Public FlowLayout()
Public FlowLayout(int alignment)
Public FlowLayout(int alignment, int horizGap, int vertGap)
alignment表示使用流布局管理器后组件在每一行的具体摆放位置,它可以被赋予以下3个值之一:
FlowLayoutLEFT = 0
FlowLayoutCENTER=1
FLowLayoutRIGHT=2
horizGap与vertGap分别以像素为单位指定组件之间的水平间隔与垂直间隔
 
边界布局管理器
在默认不指定窗体布局的情况下,Swing组件的布局模式是边界(BorderLayout)布局管理器
BorderLayout.CENTER, BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.WEST, BorderLayout.EAST
表示不同的位置
 
网格布局管理器
Public GridLayout(int rows, int columns)
Public GridLayout(int rows, int columns, int HorizGap, int vertGap)
 
 
常用面板
 
JPanel面板
JPanel面板可以聚集一些组件来布局,其继承Container类
 
 
JScrollPane面板
JScrollPane是带滚动条的面板,它也是一种容器,但是它只能放置一个组件,并且不可以使用布局管理器。如果需要在JSrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上,然后将Jpanel面板作为一个整体组件添加在JScrollPane组件上
 
 
按钮组件
 
提交按钮组件JButton
 
单选按钮组件JRadioButton
Public JRadioButton(String text, Icon icon, boolean selected)
 
列表组件
 
下拉列表框组件JComboBox类
Public JComboBox()
Public JComboBox(ComboBoxModel dataModel)
Public JComboBox(Object[] arrayData)
Public JComboBox(Vector vector)
 
JComboBox模型
可以自定义一个类实现ComboBoxModel接口,然后在初始化JComboBox对象时向上转型为ComboBoxModel接口类型,但必须实现以下两种方法:
Public void setSelectedItem(Object item)
Public Object getSelectedItem()
第一个方法用于设置下拉列表框中的选中项, 第二个方法用于返回下拉列表框中的选中项
自定义这个类除了实现这个接口之外,还可以继承AbstractListModel类,在该类中也有两个操作下拉列表框的重要方法:
getSize():返回列表的长度
getElementAt(int index):返回指定索引处的值
 
列表框组件JList
列表框只是在窗体上占据固定的大小,如果需要列表框具有滚动效果,可以将列表框放入滚动面板中,用户在选择列表框中的某一项时,按住Shift键并选择列表框中的其他项目,则当前选项和其他项目之间的选项将被全部选中,也可以按住Ctrl键并单击列表框中的单个项目,这样可以使列表框中被单击的项目反复切换非选择状态或选择状态
 
Public void JList()
Public void JList(Object[] listData)
Public void JList(Vector listData)
Public void JList(ListModel dataModel)
 
ListModel是Swing包中的一个接口,它提供了获取列表框属性的方法,但是在通常情况下,为了使用户不完全实现ListModel接口中的方法,通常自定义一个类继承该接口的抽象类AbastractListModel
除此之外还可以使用DefaultListModel类创建列表框,该类扩展了AbstractListModel类,所以也可以通过DefaultListModel对象向上转型为ListModel接口初始化列表框,同时DefaultListModel类提供addElement()方法实现将内容添加至列表框中
Final String[] flavors = {“列表”, “列表2”,…}
Final DefaultListModel items = new DefaultListModel();
Final Jlist lst = new JList(items);
For(int i=0;i<4;i++)
{
    Items.addElement(flavors[I]);
}
 
 
 
列表组件
 
文本框组件JTextField
它是用来显示或编辑一个单行文本,继承了javax.swing.text.JTextComponent类
public JTextField()
public JTextField(String text)
public JTextField(int filedwidth)
public JTextField(string text, int fieldwidth)
public JTextField(Document docModel, String text, int fieldWidth)
 
密码框组件JPasswordField
与文本框的定义与用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密
setEchoChar()可以改变密码框的回显字符
 
文本域组件JTextArea
接受用户的多行输入Swing中任何一个文本区域都是JTextArea类型的对象
Public JTextArea(int rows, int columns)
setLineWrap(true)可以自动换行
 
 
常用事件监听器
 
监听事件简介
在Swing事件模型中由3个分离的对象完成对事件的处理,分别为事件源,事件以及监听程序。
事件源触发一个事件,它被一个或多个“监听器”接收,监听器负责处理事件
所谓事件监听器,实质上就是一个“实现特定类型监听器接口”的类对象。具体地说,事件几乎都以对象来表示,它是某种事件类的对象,事件源(如按钮)会在用户做出相应的动作(如按钮被按下)时产生事件对象,如动作事件对应ActionEvent类对象,同时要编写一个监听器的类必须实现相应的接口,如ActionEvent类对应的是ActionListener接口,需要获取某个事件对象就必须相应的接口,同时需要将接口中的方法一一实现。最后事件源(按钮)调用相应的方法加载这个”实现特定类型监听器接口“的类对象,所有的事件源都具有addXXXListener()和removeXXXListener()方法,这样就可以为组件添加或移除相应的事件监听器。
 
动作事件监听器
动作事件(ActionEvent)监听器是Swing中比较常用的事件监听器,许多组件的动作都会使用它监听,如按钮被单击。
 
事件名称 事件源 监听接口 添加或删除相应类型监听器的方法
ActionEvent JButton、JList、JTextField等 ActionListener addActionListener()、removeActionListener()
 
焦点事件(FocusEvent)监听器
如将光标焦点离开一个文本框时需要弹出一个对话框,或将焦点返回给该文本框等
 
事件名称 事件源 监听接口 添加或删除相应类型监听器的方法
FocusEvent Component以及派生类 FocusListener addFocusListener(),removeFocusListener()
 
posted @ 2018-10-29 19:09  Zzzwww  阅读(141)  评论(0编辑  收藏  举报
/* 看板娘 */