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);绘制组件中的子组件
原创粉丝点击