0
点赞
收藏
分享

微信扫一扫

java学习之路:32.史上最全的Swing常用组件


java学习之路:32.史上最全的Swing常用组件_java

写在前面:
大家好,我是 花狗Fdog ,来自内蒙古的一个小城市,目前在泰州读书。
很感谢能有这样一个平台让我能够在这里分享所学所感。
我喜欢编程,喜欢代码,喜欢去做一个程序员。
努力学习,争取多年后,给亲人更好的生活。


文章目录

  • 一.前言
  • 二.Swing常用组件
  • 三.JButton | 代表Swing按钮
  • 1.创建没有设置文本或图标的按钮
  • 2.创建带有文本的按钮
  • 3.创建带有图标的按钮
  • 四.JCheckBox| 代表Swing中的复选框组件
  • 1.创建一个最初未选中的复选框按钮,该按钮没有文本,也没有图标。
  • 2.用文本创建一个最初未选中的复选框。
  • 五.JComboBox | 代表Swing下拉列表框
  • 1.使用默认数据模型创建JComboBox。
  • 2.创建一个JComboBox,它从现有的ComboBoxModel中获取项目。
  • 六.JFrame |代表Swing的框架类
  • 1.使用指定的标题创建一个最初不可见的新框架。
  • 七.JDialog | 代表Swing版本的对话框
  • 1.创建具有指定标题、所有者框架和模式的对话框。
  • 八.JLabel| 代表Swing中的标签组件
  • 1.创建一个没有图像和标题为空字符串的JLabel实例。
  • 2.使用指定的文本创建JLabel实例。
  • 3.使用指定的图标创建JLabel实例。
  • 8.JRadioButton | 代表Swing单选按钮
  • 1. 创建一个没有设置文本的初始未选单选按钮。
  • 2.用指定的文本创建未选中的单选按钮。
  • 9.JList| 代表能够在用户界面中显示一系列条目的组件
  • 1.使用空的只读模型构造JList。
  • 2.构造一个JList,用于显示指定向量中的元素。
  • 10.JTextField | 代表文本框
  • 1.构造一个用指定文本初始化的新TextField。
  • 11.JPasswordField | 代表密码框
  • 1.构造一个新的JPasswordField
  • 12.JTextArea | 代表Swing中的文本区域
  • 1.构造一个新的文本区域。
  • 2.构造一个显示指定文本的新文本区域。
  • 13.JOptionPane | 代表Swing中的一些对话框


一.前言

首先应该明白,用java创建一个窗体程序包括下面几步:

1.实例化JFrame对象,也就是创建一个窗体。
2.获取一个容器。
3.创建组件。
4.向容器添加组件。
5.使窗体可视。
6.设置窗体大小。
7.调用上面方法。

应该有这样的概念,Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常,这个容器用来包含和显示组件。

java学习之路:32.史上最全的Swing常用组件_构造方法_02


可以看到JFrame继承于Container类。

import java.awt.*;
import javax.swing.*;
public class zujian extends JFrame{
public  void windows() {
 //实例化JFrame对象,就是创建一个窗体
 JFrame jf =new JFrame("花狗");//设置窗体标题
 //获取容器
 Container c =jf.getContentPane();
 
 
 //下面所有组件的创建都将在这里编写,所有下面只列出组件创建的代码。
 //如果有其他改动,我会列出。
 
 
 jf.setVisible(true);//设置窗体可视
 jf.setSize(300,300);//设置窗体大小
 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗体关闭方式
}
 public static void main(String[] args) {
    new zujian().windows();
 }
}

java学习之路:32.史上最全的Swing常用组件_构造方法_03

这是基础代码,创建一个空白窗体,为了文章不臃肿,我就只列出一次。关于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.创建没有设置文本或图标的按钮

JButton jb=new JButton();
 c.add(jb);

java学习之路:32.史上最全的Swing常用组件_Swing_04

可以看到创建的按钮涉及整个窗体,这是为什么呢,窗体默认使用边界布局器,创建的组件会覆盖整个窗体,我们只需要取消边界布局,改用绝对布局:

jf.setLayout(null);  //告诉窗体取消边界布局
 JButton jb=new JButton();
 jb.setBounds(10,30,80,30);//使用绝对布局,自定义按钮大小
 c.add(jb);

java学习之路:32.史上最全的Swing常用组件_java_05


如果这里有疑问可查看:

布局管理器

2.创建带有文本的按钮

JButton jb=new JButton("我是按钮");
 jb.setBounds(50,50,100,100);//使用绝对布局,自定义按钮大小
 c.add(jb);
 jf.setVisible(true);
 jf.setSize(300,300);

java学习之路:32.史上最全的Swing常用组件_构造方法_06

3.创建带有图标的按钮

想使用带有图标的按钮,需要使用Icon接口:Icon

import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon {
 private int width;  //设置图标的宽
 private int height; //设置图标的长
 public int getIconHeight() {
  return this.height;
 }
 public int getIconWidth() {
  return this.width;
 }
 public DrawIcon(int width,int height) {
  this.width=width;
  this.height=height;
 }
 public void paintIcon(Component arg0,Graphics arg1,int x,int y) {
  arg1.fillOval(x, y, width, height);//绘制一个圆形
 }
 public static void main(String[] args) {
    DrawIcon icon =new DrawIcon(15,15);
    JButton jl=new JButton(icon);
    JFrame jf =new JFrame("花狗");
 jf.setLayout(null);  //告诉窗体取消边界布局
 jl.setBounds(50,50,100,100);//使用绝对布局,自定义按钮大小
    Container c=jf.getContentPane();
    c.add(jl);
    jf.setVisible(true);
    jf.setSize(300,300);
 }
}

java学习之路:32.史上最全的Swing常用组件_java_07

也可以使用图片作为图标来使用:

import java.awt.*;
import javax.swing.*;
import java.net.URL; 
public class myicon extends JFrame{
 public myicon() {
 Container container =getContentPane();
 //创建一个标签
 JButton jb =new JButton();
 setLayout(null);  //告诉窗体取消边界布局
 jb.setBounds(50,50,100,100);//使用绝对布局,自定义按钮大小
 //获取图片所在的URL
 URL url = myicon.class.getResource("/wo.PNG");
 Icon icon =new ImageIcon(url);
 jb.setIcon(icon);
 //有两种添加方法,一种就是在创建的时候直接添加图标,第二种就是在后续使用方法添加
 jb.setHorizontalAlignment(SwingConstants.CENTER);
 jb.setOpaque(true);
 container.add(jb);
 setSize(400,300);
 setVisible(true);
 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 }
 public static void main(String[] args) {
    new myicon();
 }
}

java学习之路:32.史上最全的Swing常用组件_Swing_08


创建文本加图标的按钮,这里就不在赘述,至于最后一个构造方法使用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.创建一个最初未选中的复选框按钮,该按钮没有文本,也没有图标。

JCheckBox jc =new JCheckBox();
 jc.setBounds(50,50,100,100);//使用绝对布局,自定义大小

java学习之路:32.史上最全的Swing常用组件_Swing_09

2.用文本创建一个最初未选中的复选框。

JCheckBox  jl=new JCheckBox ("橘子");

java学习之路:32.史上最全的Swing常用组件_ico_10

不常用的这里不再列出。

五.JComboBox | 代表Swing下拉列表框

JComboBox有4种构造方法:

构造方法

解释

JComboBox()

使用默认数据模型创建JComboBox。

JComboBox(ComboBoxModel aModel)

创建一个JComboBox,它从现有的ComboBoxModel中获取项目。

JComboBox(Object[] items)

创建一个JComboBox,其中包含指定数组中的元素。

JComboBox(Vector<?> items)

创建一个JComboBox,其中包含指定向量中的元素。

1.使用默认数据模型创建JComboBox。

JComboBox jc =new JComboBox();
 jc.setBounds(50,50,80,30);//使用绝对布局,自定义大小

java学习之路:32.史上最全的Swing常用组件_构造方法_11


可以看到创建了一个空白的下拉列表框,显然在日常应用中是没有用的,下面来添加选项:

2.创建一个JComboBox,它从现有的ComboBoxModel中获取项目。

JComboBox jc =new JComboBox();
 jc.setBounds(50,50,100,30);//使用绝对布局,自定义大小
 jc.addItem("--请选择--");
 jc.addItem("身份证");
 jc.addItem("驾驶证");
 jc.addItem("学生证");

java学习之路:32.史上最全的Swing常用组件_Swing_12

六.JFrame |代表Swing的框架类

JFrame类有4种构造方法:

构造方法

解释

JFrame()

构造一个最初不可见的新框架。

JFrame(GraphicsConfiguration gc)

在屏幕设备的指定图形配置中创建一个框架和一个空白标题。

JFrame(String title)

使用指定的标题创建一个最初不可见的新框架。

JFrame(String title, GraphicsConfiguration gc)

创建具有指定标题和指定屏幕设备图形配置的JFrame。

1.使用指定的标题创建一个最初不可见的新框架。

import java.awt.*;
import java.util.Vector;
import javax.swing.*;
public class zujian extends JFrame{
public  void windows() {
 //实例化JFrame对象,就是创建一个窗体
 JFrame jf =new JFrame("花狗");//设置窗体标题
 //获取容器
 Container c =jf.getContentPane();
 jf.setLayout(null);  //告诉窗体取消边界布局
 jf.setVisible(true);
 jf.setSize(300,300);
}
 public static void main(String[] args) {
    new zujian().windows();
 }
}

java学习之路:32.史上最全的Swing常用组件_构造方法_13

七.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.创建具有指定标题、所有者框架和模式的对话框。

import java.awt.*;
import javax.swing.*;
public class windowpr extends JDialog{
 public windowpr(MyFrame frame) {
  //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题和类型
  super(frame,"第一个JDialog窗体",true);
  Container container =getContentPane();//创建一个容器
  container.add(new JLabel("这是一个对话框"));//在容器中添加标签
  setBounds(120,120,100,100);//设置对话框窗体大小
 }
}

java学习之路:32.史上最全的Swing常用组件_Swing_14

八.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实例。

JLabel jl=new JLabel();//创建一个标签

java学习之路:32.史上最全的Swing常用组件_构造方法_15


这类标签没有上面实际作用,我们继续往下看:

2.使用指定的文本创建JLabel实例。

JLabel jl=new JLabel("标签");//创建一个标签

java学习之路:32.史上最全的Swing常用组件_Swing_16

3.使用指定的图标创建JLabel实例。

import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon {
 private int width;  //设置图标的宽
 private int height; //设置图标的长
 public int getIconHeight() {
  return this.height;
 }
 public int getIconWidth() {
  return this.width;
 }
 public DrawIcon(int width,int height) {
  this.width=width;
  this.height=height;
 }
 public void paintIcon(Component arg0,Graphics arg1,int x,int y) {
  arg1.fillOval(x, y, width, height);
 }
 public static void main(String[] args) {
    DrawIcon icon =new DrawIcon(15,15);
    JLabel  jl=new JLabel ("标签",icon,SwingConstants.CENTER);
    JFrame jf =new JFrame("花狗");
 jf.setLayout(null);  //告诉窗体取消边界布局
 jl.setBounds(50,50,100,100);//使用绝对布局,自定义按钮大小
    Container c=jf.getContentPane();
    c.add(jl);
    jf.setVisible(true);
    jf.setSize(300,300);
 }
}

java学习之路:32.史上最全的Swing常用组件_ico_17

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. 创建一个没有设置文本的初始未选单选按钮。

JRadioButton jr =new JRadioButton();

java学习之路:32.史上最全的Swing常用组件_java_18

2.用指定的文本创建未选中的单选按钮。

JRadioButton jr =new JRadioButton("香蕉");

java学习之路:32.史上最全的Swing常用组件_java_19

9.JList| 代表能够在用户界面中显示一系列条目的组件

JList类有4个构造方法:

构造方法

解释

JList()

使用空的只读模型构造JList。

JList(E[] listData)

构造一个JList,用于显示指定数组中的元素。

JList(ListModel dataModel)

构造一个JList,用于显示来自指定的非空模型的元素。

JList(Vector<? extends E> listData)

构造一个JList,用于显示指定向量中的元素。

1.使用空的只读模型构造JList。

JList jr =new JList();

java学习之路:32.史上最全的Swing常用组件_java_20

和下拉列表框一样空白,没有什么实际价值。

2.构造一个JList,用于显示指定向量中的元素。

Vector vt =new Vector();
 vt.add("红色");
 vt.add("绿色");
 vt.add("蓝色");
 JList jr =new JList();
 jr.setListData(vt);

java学习之路:32.史上最全的Swing常用组件_ico_21


和下拉列表框不同的是该组件直接显示选项。

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。

String str="大家好,我是花狗。";
 JTextField jr =new JTextField(str);

java学习之路:32.史上最全的Swing常用组件_Swing_22

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

JPasswordField   jr =new JPasswordField  ();

java学习之路:32.史上最全的Swing常用组件_Swing_23


可以通过该方法修改回显字符:

jr.setEchoChar('#');

java学习之路:32.史上最全的Swing常用组件_java_24

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.构造一个新的文本区域。

JTextArea   jr =new JTextArea  ();

与文本框不同的是这个可以输入内容:

java学习之路:32.史上最全的Swing常用组件_构造方法_25


也可以提前显示一些内容,就好比一些软件搜索框默认热门内容:

2.构造一个显示指定文本的新文本区域。

java学习之路:32.史上最全的Swing常用组件_Swing_26

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实例,以显示具有指定消息类型、图标和选项的消息,并指定初始选择的选项。

JOptionPane jo =new JOptionPane();
 jo.showMessageDialog(null, "普通提示框");

java学习之路:32.史上最全的Swing常用组件_Swing_27

若有错误,欢迎指正,欢迎评论。
每文一句:奋斗不是简单的吃苦,奋斗是一种心态。一种做任何事情,只要有一丝可能,就愿意全心全意去投入和尝试的心态。奋斗的心态会调用尽你前半生所有的智慧、资源、技巧和情商去面对问题,还会把你以前积累上的不足,以最直接的方式暴露在你前面。让你知道自己有多强,也让你知道自己有多弱。


举报

相关推荐

0 条评论