第十八节、轻松学Java_Swing编程

常用面板

JPanel面板

如果将所有的组件都添加到由 JFrame 窗体提供的默认组件容器中, 将存在如下两个问题:
( 1) 一个界面中的所有组件只能采用一种布局方式, 这样很难得到一个富于变化的界面。
( 2) 有些布局方式只能管理有限个组件, 例如 JFrame 窗体默认的 BorderLayout 布局管理器最多只能管理 5 个组件。

这两个问题可以通过JPanel面板就能解决,首先将面板和组件添加到JFrame窗体中,然后再将子面板和组件添加到上级面板中,这样就可以向面板中添加数量不限的组件,并且通过对每个面板采用不同的布局管理器,真正解决众多组件的布局问题。JPanel面板默认采用FlowLayout布局管理器。

JScrollPane面板

JScrollPane 类实现了一个带有滚动条的面板, 用来为某些组件添加滚动条。

Swing常用控件

JFrame

在 Swing 组件中, 最常见的一个控件就是 JFrame, 它和 Frame 一样是一个独立存在的顶级窗口, 不能放置在其他容器中。 JFrame 支持通用窗口所有的基本功能, 例如窗口最小化、 设定窗口大小等。

package com.test;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
public class Test extends JFrame {
	public Test() {
		this.setTitle("JFrameTest");
		this.setSize(300, 200);
		// 定义一个按钮组件
		JButton bt = new JButton("按钮");
		// 设置流式布局管理器
		this.setLayout(new FlowLayout());
		// 添加按钮组件
		this.add(bt);
		// 设置单击关闭按钮时的默认操作
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	public static void main(String[] args) {
		new Test();
	}
}

输出:
在这里插入图片描述
JFrame和Frame窗体的效果基本相同,但是JFrame类提供了关闭窗口的功能,在程序中不需要添加窗体监听器,只需要调用setDefaultCloseOperation()方法,然后将常量JFrame.EXIT_ON_CLOSE作为参数传入即可。

JLabel

JLabel 组件用来显示文本和图像,例如通过 setText(String text)方法设置标签显示的文本, 通过 setFont(Font font)方法设置标签文本的字体及大小, 通过 setHorizontalAlignment(int alignment)方法设置文本的显示位置。

如果需要在标签中显示图片,可以通过setIcon(Icon icon)方法设置,如果想在标签中既显示文本又显示图片,setHorizontalTextPosition(int textPosition)设置标签文本相对于其图像的水平位置,还可以通过setVerticalTextPosition(int textPosition)设置标签文本相对于其图像的垂直位置。

public class Test extends JFrame { // 继承窗体类JFrame
	public static void main(String args[]) {
		Test frame = new Test();
		frame.setVisible(true); // 设置窗体可见,默认为不可见
	}

	public Test() {
		super(); // 继承父类的构造方法
		setTitle("标签组件示例"); // 设置窗体的标题
		setBounds(100, 100, 500, 375); // 设置窗体的显示位置及大小
		getContentPane().setLayout(null); // 设置为不采用任何布局管理器
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体关闭按钮的动作为退出

		final JLabel label = new JLabel(); // 创建标签对象
		label.setBounds(0, 0, 492, 341); // 设置标签的显示位置及大小
		label.setText("欢迎进入Swing世界!"); // 设置标签显示文字
		label.setFont(new Font("", Font.BOLD, 22)); // 设置文字的字体及大小
		label.setHorizontalAlignment(JLabel.CENTER); // 设置标签内容居中显示
		label.setIcon(new ImageIcon("img/QCKJ.JPG")); // 设置标签显示图片
		label.setHorizontalTextPosition(JLabel.CENTER); // 设置文字相对图片在水平方向的显示位置
		label.setVerticalTextPosition(JLabel.BOTTOM); // 设置文字相对图片在垂直方向的显示位置
		getContentPane().add(label); // 将标签添加到窗体中
	}

}
JButton

setText(String text)方法设置按钮的标签文本。相关方法参见API手册。

JTextArea

.JTextArea 组件实现一个文本域, 文本域可以接收用户输入的多行文本。 在创建文本域时, 可以通过setLineWrap(boolean wrap)方法设置文本是否自动换行, 默认为 false, 即不自动换行, 否则为自动换行。

JTextField

JTextField 组件实现一个文本框, 用来接收用户输入的单行文本信息。 如果需要为文本框设置默认文本,可以通过构造函数 JTextField(String text)创建文本框对象。

JPasswordField

JPasswordField 组件实现一个密码框, 用来接收用户输入的单行文本信息, 在密码框中并不显示用户输入的真实信息, 而是显示一个指定的回显字符作为占位符。新创建密码框的默认回显字符为*, 可以通过 setEchoChar(char c)方法修改回显字符。

JRadioButton

JRadioButton 组件实现一个单选按钮, 用户可以很方便地查看单选按钮的状态。
ButtonGroup 类用来创建一个按钮组, 其作用是负责维护该组按钮的开启状态, 在按钮组中只能有一个按钮处于开启状态。

JCheckBox

JCheckBox 组件实现一个复选框, 该复选框可以被选定和取消选定。 可以同时选定多个复选框。

JcomboBox

JComboBox 组件实现一个组合框, 用户可以从下拉选项列表中选择相应的值, 该选项列表框还可以设置为可编辑的, 此时用户可以在框中输入相应的值。

JList

JList 组件实现一个列表框, 列表框与组合框的主要区别是列表框可以多选, 而组合框只能单选。 在创建列表框时, 需要通过构造函数 JList(Object[] list)直接初始化该列表框包含的选项。
JList类实现的列表框并不提供滚动窗口。

其他组件就日后用到搜索就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

身影王座

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值