“这是我参与8月更文挑战的第26天,活动详情查看: 8月更文挑战” juejin.cn/post/698796…
@[TOC]
一.前言
首先应该明白,用java创建一个窗体程序包括下面几步:
1.实例化JFrame对象,也就是创建一个窗体。
2.获取一个容器。
3.创建组件。
4.向容器添加组件。
5.使窗体可视。
6.设置窗体大小。
7.调用上面方法。
应该有这样的概念,Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常,这个容器用来包含和显示组件。
可以看到JFrame继承于Container类。
1 | java复制代码import java.awt.*; |
这是基础代码,创建一个空白窗体,为了文章不臃肿,我就只列出一次。关于java文档,可自行下载:
java文档
二.Swing常用组件
组件名称 | 定义 |
---|---|
JButton | 代表Swing按钮,按钮可以带一些图片或文字 |
JCheckBox | 代表Swing中的复选框组件 |
JComboBox | 代表Swing下拉列表框,可以在下拉显示区域显示多个选项 |
JFrame | 代表Swing的框架类 |
JDialog | 代表Swing版本的对话框 |
JLabel | 代表Swing中的标签组件 |
JRadioButton | 代表Swing单选按钮 |
JList | 代表能够在用户界面中显示一系列条目的组件 |
JTextField | 代表文本框 |
JPasswordField | 代表密码框 |
JTextArea | 代表Swing中的文本区域 |
JOptionPane | 代表Swing中的一些对话框 |
每个组件都有很多种用法,建议查看java文档。
三.JButton | 代表Swing按钮
JButton类拥有5种构造方法:
构造方法 | 解释 |
---|---|
JButton() | 创建没有设置文本或图标的按钮 |
JButton(String text) | 创建带有文本的按钮 |
JButton(Icon icon) | 创建带有图标的按钮 |
JButton(String text, Icon icon) | 创建带有初始文本和图标的按钮 |
JButton(Action a) | 创建一个按钮,其属性从所提供的Action中获取 |
1.创建没有设置文本或图标的按钮
1 | java复制代码 JButton jb=new JButton(); |
=200x)可以看到创建的按钮涉及整个窗体,这是为什么呢,窗体默认使用边界布局器,创建的组件会覆盖整个窗体,我们只需要取消边界布局,改用绝对布局:
1 | java复制代码 jf.setLayout(null); //告诉窗体取消边界布局 |
=200x)
如果这里有疑问可查看:
布局管理器
2.创建带有文本的按钮
1 | java复制代码 JButton jb=new JButton("我是按钮"); |
=200x)
3.创建带有图标的按钮
想使用带有图标的按钮,需要使用Icon接口:Icon
1 | java复制代码import java.awt.*; |
=200x)
也可以使用图片作为图标来使用:
1 | java复制代码import java.awt.*; |
=200x)
创建文本加图标的按钮,这里就不在赘述,至于最后一个构造方法使用Action接口的使用方法,这里不在讲解。
四.JCheckBox| 代表Swing中的复选框组件
JCheckBox类有8中构造方法:
构造方法 | 解释 |
---|---|
JCheckBox() | 创建一个最初未选中的复选框按钮,该按钮没有文本,也没有图标。 |
JCheckBox(Icon icon) | 使用图标创建一个最初未选中的复选框。 |
JCheckBox(Icon icon, boolean selected) | 创建带有图标的复选框,并指定是否最初选中它。 |
JCheckBox(String text) | 用文本创建一个最初未选中的复选框。 |
JCheckBox(String text, boolean selected) | 创建带有文本的复选框,并指定是否最初选中它。 |
JCheckBox(String text, Icon icon) | 用指定的文本和图标创建一个最初未选中的复选框。 |
JCheckBox(String text, Icon icon, boolean selected) | 创建带有文本和图标的复选框,并指定是否最初选中它。 |
JCheckBox(Action a) | 创建一个复选框,其中的属性取自提供的操作。 |
1.创建一个最初未选中的复选框按钮,该按钮没有文本,也没有图标。
1 | java复制代码JCheckBox jc =new JCheckBox(); |
=200x)
2.用文本创建一个最初未选中的复选框。
1 | java复制代码 JCheckBox jl=new JCheckBox ("橘子"); |
=200x)
不常用的这里不再列出。
五.JComboBox | 代表Swing下拉列表框
JComboBox有4种构造方法:
构造方法 | 解释 |
---|---|
JComboBox() | 使用默认数据模型创建JComboBox。 |
JComboBox(ComboBoxModel aModel) | 创建一个JComboBox,它从现有的ComboBoxModel中获取项目。 |
JComboBox(Object[] items) | 创建一个JComboBox,其中包含指定数组中的元素。 |
JComboBox(Vector<?> items) | 创建一个JComboBox,其中包含指定向量中的元素。 |
1.使用默认数据模型创建JComboBox。
1 | java复制代码 JComboBox jc =new JComboBox(); |
=200x)
可以看到创建了一个空白的下拉列表框,显然在日常应用中是没有用的,下面来添加选项:
2.创建一个JComboBox,它从现有的ComboBoxModel中获取项目。
1 | java复制代码 JComboBox jc =new JComboBox(); |
=200x)
六.JFrame |代表Swing的框架类
JFrame类有4种构造方法:
构造方法 | 解释 |
---|---|
JFrame() | 构造一个最初不可见的新框架。 |
JFrame(GraphicsConfiguration gc) | 在屏幕设备的指定图形配置中创建一个框架和一个空白标题。 |
JFrame(String title) | 使用指定的标题创建一个最初不可见的新框架。 |
JFrame(String title, GraphicsConfiguration gc) | 创建具有指定标题和指定屏幕设备图形配置的JFrame。 |
1.使用指定的标题创建一个最初不可见的新框架。
1 | java复制代码import java.awt.*; |
=200x)
七.JDialog | 代表Swing版本的对话框
JDialog有N种,确实有点多,只列出常见的:
构造方法 | 解释 |
---|---|
JDialog() | 创建没有标题和指定框架所有者的非模态对话框。 |
JDialog(Frame owner) | 创建一个非模态对话框,指定框架为其所有者,标题为空。 |
JDialog(Frame owner, boolean modal) | 以空标题和指定的模式和框架作为其所有者创建对话框。 |
JDialog(Frame owner, String title) | 创建具有指定标题和指定所有者框架的非模态对话框。 |
JDialog(Frame owner, String title, boolean modal) | 创建具有指定标题、所有者框架和模式的对话框。 |
1.创建具有指定标题、所有者框架和模式的对话框。
1 | java复制代码import java.awt.*; |
=200x)
八.JLabel| 代表Swing中的标签组件
JLabel有6种构造方法:
构造方法 | 解释 |
---|---|
JLabel() | 创建一个没有图像和标题为空字符串的JLabel实例。 |
JLabel(Icon image) | 使用指定的图标创建JLabel实例。 |
JLabel(Icon image, int horizontalAlignment) | 使用指定的图像和水平对齐方式创建JLabel实例。 |
JLabel(String text) | 使用指定的文本创建JLabel实例。 |
JLabel(String text, Icon icon, int horizontalAlignment) | 使用指定的文本、图像和水平对齐方式创建JLabel实例。 |
JLabel(String text, int horizontalAlignment) | 使用指定的文本和水平对齐方式创建JLabel实例。 |
1.创建一个没有图像和标题为空字符串的JLabel实例。
1 | java复制代码 JLabel jl=new JLabel();//创建一个标签 |
=200x)
这类标签没有上面实际作用,我们继续往下看:
2.使用指定的文本创建JLabel实例。
1 | java复制代码JLabel jl=new JLabel("标签");//创建一个标签 |
=200x)
3.使用指定的图标创建JLabel实例。
1 | java复制代码import java.awt.*; |
=200x)
8.JRadioButton | 代表Swing单选按钮
构造方法 | 解释 |
---|---|
JRadioButton() | 创建一个没有设置文本的初始未选单选按钮。 |
JRadioButton(Action a) | 创建一个radiobutton,其中的属性取自提供的操作。 |
JRadioButton(Icon icon) | 创建一个最初未选择的单选按钮,该按钮具有指定的图像,但没有文本。 |
JRadioButton(Icon icon, boolean selected) | 创建具有指定图像和选择状态但没有文本的单选按钮。 |
JRadioButton(String text) | 用指定的文本创建未选中的单选按钮。 |
JRadioButton(String text, boolean selected) | 创建具有指定文本和选择状态的单选按钮。 |
JRadioButton(String text, Icon icon) | 创建一个单选按钮,该按钮具有指定的文本和图像,并且最初未被选中。 |
JRadioButton(String text, Icon icon, boolean selected) | 创建具有指定文本、图像和选择状态的单选按钮。 |
- 创建一个没有设置文本的初始未选单选按钮。
1 | java复制代码JRadioButton jr =new JRadioButton(); |
=200x)
2.用指定的文本创建未选中的单选按钮。
1 | java复制代码JRadioButton jr =new JRadioButton("香蕉"); |
=200x)
9.JList| 代表能够在用户界面中显示一系列条目的组件
JList类有4个构造方法:
构造方法 | 解释 |
---|---|
JList() | 使用空的只读模型构造JList。 |
JList(E[] listData) | 构造一个JList,用于显示指定数组中的元素。 |
JList(ListModel dataModel) | 构造一个JList,用于显示来自指定的非空模型的元素。 |
JList(Vector<? extends E> listData) | 构造一个JList,用于显示指定向量中的元素。 |
1.使用空的只读模型构造JList。
1 | java复制代码JList jr =new JList(); |
=200x)和下拉列表框一样空白,没有什么实际价值。
2.构造一个JList,用于显示指定向量中的元素。
1 | java复制代码 Vector vt =new Vector(); |
=200x)
和下拉列表框不同的是该组件直接显示选项。
10.JTextField | 代表文本框
JTextField类有5种构造方法:
构造方法 | 解释 |
---|---|
JTextField() | 构造一个新TextField。 |
JTextField(Document doc, String text, int columns) | 构造一个新的JTextField,该字段使用给定的文本存储模型和给定的列数。 |
JTextField(int columns) | 构造具有指定列数的新空TextField。 |
JTextField(String text) | 构造一个用指定文本初始化的新TextField。 |
JTextField(String text, int columns) | 构造一个用指定的文本和列初始化的新TextField。 |
1.构造一个用指定文本初始化的新TextField。
1 | java复制代码 String str="大家好,我是花狗。"; |
=200x)
11.JPasswordField | 代表密码框
JPasswordField类有5种构造方法:
构造方法 | 解释 |
---|---|
JPasswordField() | 构造一个新的JPasswordField,其中包含一个默认文档、null起始文本字符串和0列宽度。 |
JPasswordField(Document doc, String txt, int columns) | 构造一个新的JPasswordField,该字段使用给定的文本存储模型和给定的列数。 |
JPasswordField(int columns) | 使用指定的列数构造新的空JPasswordField。 |
JPasswordField(String text) | 构造一个用指定文本初始化的新JPasswordField。 |
JPasswordField(String text, int columns) | 构造一个用指定文本和列初始化的新JPasswordField。 |
1.构造一个新的JPasswordField
1 | java复制代码 JPasswordField jr =new JPasswordField (); |
=200x)
可以通过该方法修改回显字符:
1 | java复制代码jr.setEchoChar('#'); |
=200x)
12.JTextArea | 代表Swing中的文本区域
JTextArea类有有6种构造方法:
构造方法 | 解释 |
---|---|
JTextArea() | 构造一个新的文本区域。 |
JTextArea(Document doc) | 使用给定的文档模型构造一个新的JTextArea,并默认为所有其他参数(null, 0,0)。 |
JTextArea(Document doc, String text, int rows, int columns) | 用指定的行数和列数以及给定的模型构造一个新的JTextArea。 |
JTextArea(int rows, int columns) | 用指定的行数和列数构造新的空TextArea。 |
JTextArea(String text) | 构造一个显示指定文本的新文本区域。 |
JTextArea(String text, int rows, int columns) | 用指定的文本和行与列的数目构造一个新TextArea。 |
1.构造一个新的文本区域。
1 | java复制代码JTextArea jr =new JTextArea (); |
与文本框不同的是这个可以输入内容: =200x)
也可以提前显示一些内容,就好比一些软件搜索框默认热门内容:
2.构造一个显示指定文本的新文本区域。
=200x)
13.JOptionPane | 代表Swing中的一些对话框
JOptionPane类有7种构造方法:
构造方法 | 解释 |
---|---|
JOptionPane() | 使用测试消息创建JOptionPane。 |
JOptionPane(Object message) | 创建JOptionPane实例,以显示使用纯消息消息类型和UI提供的默认选项的消息。 |
JOptionPane(Object message, int messageType) | 创建JOptionPane实例,以显示具有指定消息类型和默认选项的消息。 |
JOptionPane(Object message, int messageType, int optionType) | 创建JOptionPane实例,以显示具有指定消息类型和选项的消息。 |
JOptionPane(Object message, int messageType, int optionType, Icon icon) | 创建JOptionPane实例,以显示具有指定消息类型、选项和图标的消息。 |
JOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options) | 创建JOptionPane实例,以显示具有指定消息类型、图标和选项的消息。 |
JOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options, Object initialValue) | 创建JOptionPane实例,以显示具有指定消息类型、图标和选项的消息,并指定初始选择的选项。 |
1 | java复制代码 JOptionPane jo =new JOptionPane(); |
若有错误,欢迎指正,欢迎评论。
==每文一句:奋斗不是简单的吃苦,奋斗是一种心态。一种做任何事情,只要有一丝可能,就愿意全心全意去投入和尝试的心态。奋斗的心态会调用尽你前半生所有的智慧、资源、技巧和情商去面对问题,还会把你以前积累上的不足,以最直接的方式暴露在你前面。让你知道自己有多强,也让你知道自己有多弱。==
本文转载自: 掘金