Swing常用组件

我们知道一个完整的程序界面包括窗口和窗口中的各种组件,常见的组件有按钮,文本框,下拉框等等。Swing中也有类似这样的组件,它们是怎么用的呢?今天就和大家一起学习回顾一下这方面的知识。 本篇介绍:JLabel、JButton、JTextField 、JTextArea 、JCheckBox、JRadioButton 、JComboBox 和JList这8种常见组件

一、标签组件:JLabel

标签是一种可以包含文本和图片的非交互组件,其文本可以是单行文本,也可以是 HTML 文本。

  • 构造方法如下:
    在这里插入图片描述

  • 常用方法如下:
    在这里插入图片描述

  • 以下是一个例子:

    创建3个标签

package swing;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
 *使用 JFrame 组件创建一个窗口,然后向窗口中添加 3 个标签,
 *这 3 个标签分别使用不同的创建方法。
 */
public class Demo09_JLabel {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java标签组件示例");    //创建Frame窗口
		JPanel jp=new JPanel();    //创建面板
		JLabel label1=new JLabel("普通标签");    //创建标签
		JLabel label2=new JLabel();
		label2.setText("调用setText()方法");
		ImageIcon img=new ImageIcon("kitty.png");    //创建一个图标
		//创建既含有文本又含有图标的JLabel对象
		JLabel label3=new JLabel("开始理财",img,JLabel.CENTER);
		jp.add(label1);    //添加标签到面板
		jp.add(label2);
		jp.add(label3);
		frame.add(jp);
		SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述

二、按钮组件:JButton

按钮是窗口中最常见的组件之一。

  • 构造方法如下:
    在这里插入图片描述
  • 常用方法有以下这些:
    在这里插入图片描述
  • 以下是一个例子:
    创建4个按钮
package swing;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
/**
 * 使用 JFrame 组件创建一个窗口,然后创建 4 个不同类型的按钮,再分别添加到窗口上显示。
 */
public class Demo10_JButton {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java按钮组件示例");    //创建Frame窗口
        JPanel jp=new JPanel();    //创建JPanel对象
        JButton btn1=new JButton("我是普通按钮");    //创建JButton对象
        JButton btn2=new JButton("我是带背景颜色按钮");
        JButton btn3=new JButton("我是不可用按钮");
        JButton btn4=new JButton("我是底部对齐按钮");
        jp.add(btn1);
        btn2.setBackground(Color.YELLOW);    //设置按钮背景色
        jp.add(btn2);
        btn3.setEnabled(false);    //设置按钮不可用
        jp.add(btn3);
        Dimension preferredSize=new Dimension(160, 60);    //设置尺寸
        btn4.setPreferredSize(preferredSize);    //设置按钮大小
        btn4.setVerticalAlignment(SwingConstants.BOTTOM);    //设置按钮垂直对齐方式
        jp.add(btn4);
        frame.add(jp);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述

三、单行文本框:JTextField

Swing 中使用 JTextField 类实现一个单行文本框,它允许用户输入单行的文本信息。

  • 构造方法如下:
    在这里插入图片描述
  • 常用方法有以下这些:
    在这里插入图片描述
  • 以下是一个例子:
    在窗体中添加3个文本框
package swing;
import java.awt.Font;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
 * 使用 JPrame 组件创建一个窗口,然后向窗口中添加三个 JTextField 文本框。
 */
public class Demo11_JTextField {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java文本框组件示例");    //创建Frame窗口
        JPanel jp=new JPanel();    //创建面板
        JTextField txtfield1=new JTextField();    //创建文本框
        txtfield1.setText("普通文本框");    //设置文本框的内容
        JTextField txtfield2=new JTextField(28);
        txtfield2.setFont(new Font("楷体",Font.BOLD,16));    //修改字体样式
        txtfield2.setText("指定长度和字体的文本框");
        JTextField txtfield3=new JTextField(30);
        txtfield3.setText("居中对齐");
        txtfield3.setHorizontalAlignment(JTextField.CENTER);    //居中对齐
        jp.add(txtfield1);
        jp.add(txtfield2);
        jp.add(txtfield3);
        frame.add(jp);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述

四、文本域组件:JTextArea

文本域与文本框的最大区别就是文本域允许用户输入多行文本信息。

  • 构造方法1: JTextArea():创建一个默认的文本域。
  • 构造方法2: JTextArea(int rows,int columns):创建一个具有指定行数和列数的文本域。
  • 构造方法3: JTextArea(String text):创建一个包含指定文本的文本域。
  • 构造方法4: JTextArea(String text,int rows,int
    columns):创建一个既包含指定文本,又包含指定行数和列数的多行文本域。

常用方法如下:
在这里插入图片描述

  • 以下是一个例子: 在窗体中添加一个文本域
package swing;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
 * 使用 JFrame 组件创建一个窗口,再向窗口中添加一个文本域,
 * 并将文本域中的文本设置为自动换行,允许显示滚动条。
 *  */
public class Demo12_JTextArea {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java文本域组件示例");    //创建Frame窗口
        JPanel jp=new JPanel();    //创建一个JPanel对象
        JTextArea jta=new JTextArea("请输入内容",7,30);
        jta.setLineWrap(true);    //设置文本域中的文本为自动换行
        jta.setForeground(Color.BLACK);    //设置组件的背景色
        jta.setFont(new Font("楷体",Font.BOLD,16));    //修改字体样式
        jta.setBackground(Color.YELLOW);    //设置按钮背景色
        JScrollPane jsp=new JScrollPane(jta);    //将文本域放入滚动窗口
        Dimension size=jta.getPreferredSize();    //获得文本域的首选大小
        jsp.setBounds(110,90,size.width,size.height);
        jp.add(jsp);    //将JScrollPane添加到JPanel容器中
        frame.add(jp);    //将JPanel容器添加到JFrame容器中
        frame.setBackground(Color.LIGHT_GRAY);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
	}
}

在这里插入图片描述
在这里插入图片描述

五、复选框组件:JCheckBox

一个复选框有选中和未选中两种状态,并且可以同时选定多个复选框。

  • 构造方法1: JCheckBox():创建一个默认的复选框,在默认情况下既未指定文本,也未指定图像,并且未被选择。

  • 构造方法2: JCheckBox(String text):创建一个指定文本的复选框。

  • 构造方法3: JCheckBox(String text,boolean selected):创建一个指定文本和选择状态的复选框。

  • 以下是一个例子: 在窗体中添加几个复选框

package swing;
import java.awt.Font;
import java.awt.Toolkit;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
 * 使用 JFmme 组件创建一个窗口,然后使用 JCheckBox 类创建一些复选框。
 */
public class Demo13_JCheckBox {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java复选组件示例");    //创建Frame窗口
        JPanel jp=new JPanel();    //创建面板
        JLabel label=new JLabel("流行编程语言有:");
        label.setFont(new Font("楷体",Font.BOLD,16));    //修改字体样式
        JCheckBox chkbox1=new JCheckBox("C#", true);    //创建指定文本和状态的复选框
        JCheckBox chkbox2=new JCheckBox("C++");    //创建指定文本的复选框
        JCheckBox chkbox3=new JCheckBox("Java");    //创建指定文本的复选框
        JCheckBox chkbox4=new JCheckBox("Python");    //创建指定文本的复选框
        JCheckBox chkbox5=new JCheckBox("PHP");    //创建指定文本的复选框
        JCheckBox chkbox6=new JCheckBox("Perl");    //创建指定文本的复选框
        jp.add(label);
        jp.add(chkbox1);
        jp.add(chkbox2);
        jp.add(chkbox3);
        jp.add(chkbox4);
        jp.add(chkbox5);
        jp.add(chkbox6);
        frame.add(jp);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述

六、单选按钮组件:JRadioButton

单选按钮与复选框类似都有两种状态,不同的是一组单选按钮中只能有一个处于选中状态。

JRadioButton 通常位于一个 ButtonGroup 按钮组中,不在按钮组中的 JRadioButton 也就失去了单选按钮的意义在同一个 ButtonGroup 按钮组中的单选按钮,只能有一个单选按钮被选中。因此,如果创建的多个单选按钮其初始状态都是选中状态,则最先加入 ButtonGroup 按钮组的单选按钮的选中状态被保留,其后加入到 ButtonGroup 按钮组中的其他单选按钮的选中状态被取消。

  • 构造方法1: JRadioButton():创建一个初始化为未选择的单选按钮,其文本未设定。
  • 构造方法2: JRadioButton(Icon icon):创建一个初始化为未选择的单选按钮,其具有指定的图像但无文本。
  • 构造方法3: JRadioButton(Icon icon,boolean
    selected):创建一个具有指定图像和选择状态的单选按钮,但无文本。
  • 构造方法4: JRadioButton(String text):创建一个具有指定文本但未选择的单选按钮。
  • 构造方法5: JRadioButton(String text,boolean
    selected):创建一个具有指定文本和选择状态的单选按钮。
  • 构造方法6: JRadioButton(String text,Icon
    icon):创建一个具有指定的文本和图像并初始化为未选择的单选按钮。
  • 构造方法7: JRadioButton(String text,Icon icon,boolean
    selected):创建一个具有指定的文本、图像和选择状态的单选按钮。

以下是一个例子:
创建一个选择季节的单选按钮组

package swing;
import java.awt.Font;
import java.awt.Toolkit;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
/**
 * 使用 JFrame 组件创建一个窗口,
 * 然后使用 JRadioButton 类创建一个选择季节的单选按钮组。
 */
public class Demo14_JRadioButton {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java单选组件示例");    //创建Frame窗口
        JPanel panel=new JPanel();    //创建面板
        JLabel label1=new JLabel("现在是哪个季节:");
        JRadioButton rb1=new JRadioButton("春天");    //创建JRadioButton对象
        JRadioButton rb2=new JRadioButton("夏天");    //创建JRadioButton对象
        JRadioButton rb3=new JRadioButton("秋天",true);    //创建JRadioButton对象
        JRadioButton rb4=new JRadioButton("冬天");    //创建JRadioButton对象
        label1.setFont(new Font("楷体",Font.BOLD,16));    //修改字体样式
        ButtonGroup group=new ButtonGroup();
        //添加JRadioButton到ButtonGroup中
        group.add(rb1);
        group.add(rb2);
        group.add(rb3);
        group.add(rb4);
        panel.add(label1);
        panel.add(rb1);
        panel.add(rb2);
        panel.add(rb3);
        panel.add(rb4);
        frame.add(panel);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述

七、下拉列表组件:JComboBox

下拉列表的特点是将多个选项折叠在一起,只显示最前面的或被选中的一个。选择时需要单击下拉列表右边的下三角按钮,这时候会弹出包含所有选项的列表。用户可以在列表中进行选择,也可以根据需要直接输入所要的选项,还可以输入选项中没有的内容。

  • 构造方法1: JComboBox():创建一个空的 JComboBox 对象。
  • 构造方法2: JComboBox(ComboBoxModel aModel):创建一个 JComboBox,其选项取自现有的
    ComboBoxModel。
  • 构造方法3: JComboBox(Object[] items):创建包含指定数组中元素的 JComboBox。

常用方法如下:
在这里插入图片描述
以下是一个例子:
创建一个包含4个选项的下拉框

package swing;
import java.awt.Toolkit;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
 * 使用 JFrame 组件创建一个窗口,
 * 然后使用 JComboBox 类创建一个包含4个选项的下拉列表框。
 */
public class Demo15_JComboBox {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java下拉列表组件示例");
        JPanel jp=new JPanel();    //创建面板
        JLabel label1=new JLabel("证件类型:");    //创建标签
        JComboBox cmb=new JComboBox();    //创建JComboBox
        cmb.addItem("--请选择--");    //向下拉列表中添加一项
        cmb.addItem("身份证");
        cmb.addItem("驾驶证");
        cmb.addItem("军官证");
        jp.add(label1);
        jp.add(cmb);
        frame.add(jp);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述

八、列表框:JList

列表框与下拉列表的区别不仅仅表现在外观上,当激活下拉列表时,会出现下拉列表框中的内容。但列表框只是在窗体系上占据固定的大小,如果需要列表框具有滚动效果,可以将列表框放到滚动面板中。当用户选择列表框中的某一项时,按住 Shift 键并选择列表框中的其他项目,可以连续选择两个选项之间的所有项目,也可以按住 Ctrl 键选择多个项目。

  • 构造方法1: JList():构造一个空的只读模型的列表框。
  • 构造方法2: JList(ListModel dataModel):根据指定的非 null 模型对象构造一个显示元素的列表框。
  • 构造方法3: JList(Object[] listData):使用 listData 指定的元素构造—个列表框。
  • 构造方法4: JList(Vector<?> listData):使用 listData 指定的元素构造一个列表框。

以下是一个例子:
创建一个包含3个选项的列表框

package swing;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
/**
 * 使用 JFmme 组件创建一个窗口,
 * 然后使用 JList 类创建一个包含3个选项的列表框。
 */
public class Demo16_JList {
	public static void main(String[] args) {
		JFrame frame=new JFrame("Java列表框组件示例");
        JPanel jp=new JPanel();    //创建面板
        JLabel label1=new JLabel("证件类型:");    //创建标签
        String[] items=new String[]{"身份证","驾驶证","军官证"};
        JList list=new JList(items);    //创建JList
        jp.add(label1);
        jp.add(list);
        frame.add(jp);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

在这里插入图片描述
在这里插入图片描述
JList 组件在默认情况下支持单选和多选,可以通过 setSelectionMode() 方法来限制选择行为

  • setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION)——允许选择一个或多个连续的元素。
  • setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)——允许选择一个连续的元素。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值