JAVA知识点梳理第四部分——Swing控件
来源:互联网 发布:网络硬盘源码 编辑:程序博客网 时间:2024/05/21 20:27
JAVA整理知识点传送门:
JAVA知识点拉理第一部分——常规知识
JAVA知识点梳理第二部分——接口、内部类、异常等等
JAVA知识点梳理第三部分——图形用户界面GUI部分
JAVA知识点梳理第四部分——Swing控件
JAVA知识点梳理第五部分——JAVA数据流(文件)
JAVA知识点梳理第六部分——线程
JAVA知识点梳理第七部分——网络
Swing组件
按钮
- 普通按钮
构造方法
Jbutton(String text,Icon icon);——创建一个既有文本按钮又有图标的按钮。
用户单击按钮的时候,系统就会发送一个ActionEvent事件类对象。如果程序要对这个事件做出相应就要使用addActionListener()
为按钮注册监听程序并实现ActionListener接口。
常用方法:
setText();改变文字按钮setEnable();改变程序的状态setMnemonic(KeyEvent.VS_A);设置快捷键setActionCommand(String string);设置命令名,方便在actionPerfored()方法中找到事件源
- 切换按钮
JToggleButton(切换按钮)、JCheckButton(复选按钮)、JRadioButton(单选按钮)
JToggleButton是一种具有两种状态的按钮,即选中状态和为选中状态。JToggleButton、JCheckButton、JRadioButton这种具有两种状态的按钮不仅可以注册ActionEvent事件监听程序,还可以注册ItemEvent事件监听程序,在ItemListener接口中实现如下方法public void itemStateChangged(ItemEvent e)
,当按钮的状态改变的时候,这种方法会被调用。
多个组件可以使用共同的时间处理程序,在ActionEvent,ItemEvent等事件类中,都提供了getSource方法可以获取事件源,该方法的返回类型是Object,public Object getSource()
,需要进行类型转换。ItemEvent中提供了一个getItem方法,作用和getSource相同。
在事件处理程序中可以使用isSelected()
方法来获得按钮的选中状态
按钮可以添加到按钮组中,这个时候需要先创建一个按钮组对象ButtonGroup buttonGroup=new ButtonGroup();
在调用add()
方法就可以将按钮添加到按钮组中。按钮组中只能有一个按钮处于选中状态。
设置按钮组的边框:
Border etched=BorderFactory.createEtchedBorder();Border border=BorderFactory.createTitleBorder(etched,"ButtonGroup name");
标签
标签(JLabel)对象通常用于显示提示性的文字信息和图标。
构造方法:
JLabel(String text,Icon icon,int horizontalAlignment);表示水平对其方式的int型参数的取值可以为JLabel.LEFT|RIGHT|CENTER
默认情况下,Label内容在垂直方向上居中显示,只有文本信息在水平方向上左对齐,只有图标的标签在水平方向上居中显示。通过setHorizontalAlignment(int alignment)
(可选值为JLable.LEFT|RIGHT|CENTER)方法和setVerticalAlignment(int alignment)
(可选值为:JLable.TOP|CENTER|BOTTOM)方法来改变label中的内容的对其方式。在既包含文字信息又包含图表信息的时候,默认情况是文本信息在图标的左侧。
组合框
组合框(JComboBox)是一个下拉菜单,它有两种形式:可编辑的和不可编辑的。对于可编辑的组合框,用户既可以从现有的选项中选择,也可以输入新的内容,对于不可编辑的组合框,用户只能从现有的选项列表中进行选择。*
构造方法:
JComboBox(Object []items);根据Object数组创建组合框,Object数组的元素即为组合框中的选项。
在组合框对象创建之后,可以通过设置setEditable()函数将其设置为可编辑的。
在JComboBox类中定义了相关的方法,可以添加或删除可选项:
public void addItem(Object anObject)——在末尾位置添加新的可选项。public void insertItemAt(Object anObject,int index)——在指定index位置添加新的可选项anObjectpublic void removeAllItem()——删除所有可选项public void removeItem()——删除由anObject指定的可选项public void removeItemAt(int anIndex)——删除指定位置的选项
在JComboBox中,可以通过getSelectedItem()
可以获取当前用户选项。
列表
列表是可供用户进行选择的一系列的可选项。
构造方法:
JList(ListModel dataModel);——构造一个列表,列表的可选项有ListModel型参数决定。JList(Object [] listData);——构造一个列表,列表的可选项由对象数组ListData决定。LList(Vector listData);——构造一个列表,列表的可选项由Vector型参数listData指定。
当根据数组或者Vector创建列表,构造方法会自动创建一个默认的,实现了ListModel接口的对象,该对象是不可变的。如果需要列表是动态可变的,则需要在创建列表的时候出现一个ListModel对象,通常情况下可以使用一个DefaultListModel对象。有特殊需要的时候,可以定义一个子类继承自AbstractListModel。
首先需要创建一个DefaultModel对象,使用addElement(Object obj)
方法添加列表。
然后根据DefaultModel对象创建列表。
列表本身不带滚动条,如果内容过多的时候可以选择JScrollPane提供滚动功能。
列表既支持单项选择,也支持多项选择。可以使用JList中定义的setSelectionMode(int selectionMode)
方法对选择模式进行设置。
当用户在列表上进行选择的时候,会调用ListSelectionEvent事件。在ListSelectionListener接口中,只包含一个方法public void valueChanged(ListSelectionEvent e)
当列表选项发生变化的时候,会调用此方法。
文本组件
文本组件可用于显示信息和提供用户输入功能,在Swing中提供文本域(JTextField)、口令输入域(JPasswordField)、文本区(JTextArea)等多个文本组件。这些文本组件都有一个共同的基类——JTextComponent。
在JTextComponent类中定义的方法主要有:
getSelectedText();从文本组件中提取被选中的文本内容getText();从文本组件中提取所有文本内容getText(int offs,int len);从文本组件中提取指定范围的文本内容select(int selectionStart,int selectionEnd);在文本组件中选中指定范围的文本内容selectAll()在文本组件中选中所有的文本内容setEditable(Boolean b);设置为可编辑和不可编辑状态setText(String t);设置文本组件的文本内容setDocument(Document doc);设置文本组件的文档copy();复制选中的文本到剪贴板cut();剪切选中的文本paste();将剪贴板的内容粘贴到当前位置
文本域JTextField
文本域是一个单行的文本输入框,可用于输入少量文本。
构造方法:
JTextField();构造一个空文本域JTextField(int columns);构建一个指定列数的空文本区域JTextField(String text);构建一个显示指定初试字符串的文本域JTextField(String text,int columns);构造一个具有指定列数,并显示指定初始字符串的文本域JTextField(Document doc,String text,int coumns);构造一个使用指定文档,具有指定列数并指定初始字符串的文本域
文本区 JTextArea
构造方法:
JTextArea();构造性的TextAreaJTextArea(int rows,int columns);构造显示指定行数和列数的TextAreaJTextArea(String text,int rows,int columns);构造显示指定文本的,具有一定的行数和列数的TextArea
常用方法:
append(String text);将text追加到文档的结尾setLineWrap(Boolean b);设置文本区的换行策略setFont(new Font("字体名称",Font.字体格式,字体大小));设置字体setWrapStyleWord(Boolean b);激活断行不断字功能
菜单组件
菜单也是最常用的 GUI组件之一,Swing包中提供了多种菜单组件,包括JMenuBar、JMenuItem,JCheckBoxItem,JRadioButtonItem,JPopupMenu
菜单栏JMenuBar
菜单栏是窗口中的主菜单,用来包含一组菜单
只有一种构造方法:JMenuBar()
,JFrame\JApplet和JDialog等类中定义的setJMenuBar(JMenuBar menuBar)方法,可以把菜单栏放到窗口的上方。
菜单JMenu
菜单是最基本的下拉菜单,用来包含一组菜单项或者子菜单。
构造方法:JMenuBar(String label)
、label指定了菜单上的文本。
菜单可以加入到菜单栏或者另一个菜单中。
菜单项JMenuItem
如果将整个菜单看做一个树,那么这个菜单项就是这个树的枝叶。是JMenu的下一级。
构造方法:
JMenuItem(String label,Icon icon);JMenuItem(String label,int mnemonic);设置一个具有快捷键的菜单项
在Menu类中定义有addSeparator()
和insertSeparator(int index)
方法可以在各个菜单项中添加分割线。
当菜单中的菜单项被选中的时候会引发ActionEvent事件,通常需要对菜单项注册ActionListener,以便对事件做出反应。
复选菜单项和单选菜单项
复选,单选菜单项与普通菜单项类似,可以显示问本和图标,但是由于它们具有选中和不选中的两种状态,所以可以在构造函数中设置菜单项的初始状态。
当菜单项的检验状态发生改变的时候,会引发ItemEvent事件,可以使用ItemListener中的itemStateChanged()对此事件进行响应。
弹出式菜单
弹出式菜单是一种比较独立的菜单,可以根据需要显示在指定位置。
构造方法:
public JPopupMenu();构造一个没有名字的弹出式菜单。public JPopupMenu(String label);构造一个具有指定名称的弹出式菜单。
对话框、标准对话框与文件对话框
对话框(JDialog)是与框架类似的可移动窗口,它与框架的区别在于,对话框具有较少的修饰并且能够被设置为“模式modal”窗口,即在窗口关闭之前,其他的窗口无法接受任何形式的输入。
构造方法:
JDialog(JFrame owner);构造一个没有标题的非模式对话框。JDialog(JFrame owner,String title,boolean modal);
JFrame参数表示该对话框的拥有者。刚刚创建的对话框是不可见的,需要调用setVisible(true)
将它显示出来。
标准对话框
JDialog 通常用于创建自定义的对话框,除此之外,在Swing中还提供了用于显示标准对话框(JOptionPane)的JOptionPane类。在JOptionPane类中定义了多个showXXXDialog形式的静态方法。
showConfirmDialog();确认对话框,显示问题,要求用户确认,yes/no/cencelshowInputDialog();输入对话框,提示用户输入信息。showMessageDialog();信息对话框,显示信息,告诉用户发生的情况。showOptionDialog();选项对话框,显示选项,告诉用户选择。
除了showOptionDialog之外,其他三种方法都有两种不同格式的同名方法。
例如:
showMessageDialog(Component parentComponent,Object message);showMessageDialog(Component parentComponent,Object message,String title,int messageType);showMessageDialog(Component parentComponent,Object message,String title,int messageType,Icon icon);
Component parentComponen表示父窗口的对象,其坐标将决定对话框的显示坐标。
String title表示对话框的标题
Object message 显示在对话框的描述信息
int messageType 对话框传递的消息类型,可以为以下常量:
- ERROR_MESSAGE
- INFORMATION_MESSAGE
- WARNING_MESSAGE
- QUESTION_MESSAGE
- PLAIN_MESSAGE
int optionType 对话框按钮的类型
- DEFAULT_OPTION
- YES_NO_OPTION
- YES_NO_CANCEL_OPTION
- OK_CANCEL_OPTION
文件对话框
文件对话框(JFileChooser)是专门用于对文件(目录)进行浏览和选择的对话框。
构造方法:
JFileChooser();JFileChooser(File currentDirctory);根据File型参数currentDirctory指定目录创建文件对话框。JFileChooser(String currentDirctory-Pahh);根据String型参数currentDirectory——path指定的目录创建文件对话框。
刚刚创建的文件对话框是不可见的,可以调用以下方法将他们显示出来
showOpenDialog(Component parent);显示打开文件对话框showSaveDialog)(Component parent);显示保存文件对话框showDialog(Component parent);显示删除文件对话框
对于文件对话框中的事件,一般无需进行处理。当用户选择文件之后,可以通过getSelectedFile()
方法获取用户选择的文件。
控制组件的外观
颜色
在Java语言中,每一个颜色都由红绿蓝三原色的组合来表示。可以使用Color类定义和管理颜色,color的每一个对象表示一种颜色。Color类中还包含几个常量,表示预定义的颜色。
可以使用下面两个方法设置组件的前景色和背景色。
public void setForeground(Color c);设置前景色public void setBackground(Color c);设置背景色
字体
可以使用setFont(Font f)
方法对组件中的文本的字体进行设置。在Java中没有预定义的字体变量,所以需要给定字体的名称,风格,大小
Font 的构造方法第一个是字体名称,第二个是字体的风格,第三个是字体的大小。字体的风格可以是以下的几种常量之一。
- Font.BOLD
- Font.ITALIC
- Font.PLAIN
- Font.BOLD+Font.ITALIC
在Java中提供一个GraphicsEnvironment类,通过该类的getAvailableFontFamilyNames()
方法可以获得可用的字体列表。
·String []fontFamilyNames=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();·
绘图
除了控制组件的颜色和显示文本的字体之外,也可以在组件上绘制图形。Java标准类库中的许多类能够用来显示并管理图形信息。Java.awt包中的Graphics类是所有图形处理的基础。
Java.awt.Component类中定义了paint(Graphics g)方法。当显示组件的时候,该方法会被调用。java,awt.Component中定义了repaint()方法,当需要重绘组件的时候会被调用。java.awt.JComponent继承了java.awt.Component并重写了paint(Graphics g)
paintComponent(Graphics g);绘制组件paintBorder(Graphics g);绘制组件的边框paintChildren(Graphics g);绘制组件中的子组件
- JAVA知识点梳理第四部分——Swing控件
- JAVA知识点梳理第一部分——常规知识
- JAVA知识点梳理第三部分——图形用户界面GUI部分
- JAVA知识点梳理第五部分——JAVA数据流(文件)
- JAVA知识点梳理第二部分——接口、内部类、异常等等
- Java知识点梳理:第四章:对象的相关知识
- 第四十七节 java学习——JAVA.SWing包
- Java知识点梳理
- Java 知识点梳理
- Java知识点梳理
- 梳理-Java基础部分
- java易错知识点梳理
- Java知识点梳理(一)
- Java知识点梳理(二)
- Java知识点梳理内部类
- java虚拟机知识点简要梳理
- Java中的并发知识点梳理
- Core Java第四章知识点总结——函数
- Webpack执行命令参数详解
- DFS-lintcode解法总结
- php封装一个多文件上传
- linux命令--useradd userdel usermod
- git教程
- JAVA知识点梳理第四部分——Swing控件
- jenkins(一)jenkins+maven+git (配置)构建前准备
- 习题二
- python学习:程序解决方案
- 看完这个,css中position的绝对定位相对定位就懂了
- 节点1检查
- HttpSession对象的详解与实战
- 一道关于索引的使用和key_len的计算的面试题
- (M)DFS:473. Matchsticks to Square