GUI 编程(常用基本控件)

本文详细介绍了JavaSwing库中的JButton、JLabel、JTextField和JPasswordField控件的构造方法和常见用法,以及如何在登录窗口中实现这些组件的布局和功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

javax.swing.JButton

javax.swing.JLabel

javax.swing.JTextField

javax.swing.JPasswordField


javax.swing.JButton

        在图形界面程序中,按钮可能是使用量最大的控件之一,javax.swing 包中 JButton 类就 是用来创建按钮的。如下表为 JButton 常用的构造方法

JButton 常用构造方法一览表
构造方法说明
JButton()创建不带文本和图标的按钮
JButton(String text)创建带文本的按钮
JButton(Icon icon)创建带图标的按钮
JButton(String text, Icon icon)创建带文本和图标的按钮

        JButton 中还提供了很多设置按钮属性的方法,如设置按钮上的文本、按钮等,

JButton 常用方法一览表
方法说明
void setText(String text)设置按钮上的文本
String getText()获得按钮上的文本
void setBackground(Color c)设置按钮的背景色
void setEnabled(boolean b)设置按钮是否为可用,由参数 b 决定
void setVisible(boolean b)设置按钮是否为可见,由参数 b 决定
void setToolTipText(String text)设置按钮的悬停提示信息
void setIcon(Icon defaultIcon)设置按钮的默认图标(继承自 AbstractButton 类)

javax.swing.JLabel

        JLabel 控件是最简单的 Swing 组件之一,用于在窗体上显示标签, JLabel 既可以显示 文本,也可以显示图像。如下表为 JLabel 常用的构造方法。

JLabel 常用构造方法一览表
构造方法说明
JLabel()创建不带文本和图标的标签
JLabel(String text)以指定文本创建标签
JLabel(Icon icon)以指定图标创建标签

        JLabel 常用的方法如下表

JLabel 常用方法一览表
方法说明
void setText(String text)设置标签上的文本
String getText()获得标签上的文本
void setIcon(Icon icon)设置标签上的图标
Icon getIcon()获得标签上的图标

JLabel 只能用于显示文本和图标信息,用户不能对其进行修改。

javax.swing.JTextField

        JTextField 也是一个轻量级控件,它允许用户编辑单行文本。如下表为 JTextField 常用的构造方法。

JTextField 常用构造方法一览表
构造方法说明
JTextField()创建一个空的文本框
JTextField(int columns)创建一个指定列数的空文本框
JTextField(String text)创建一个指定初始文本的文本框
JTextField(String text, int columns)创建一个指定初始化文本和列数的文本框

JTextField(int columns)方法在使用流式布局时才有效果。

JTextField 常用的方法如下表

JTextField 常用方法一览表
方法说明
void setText(String text)设置文本框的文本,由 text 指定
String getText()获得文本框的文本
void setHorizontalAlignment(int alignment)设置文本框中文本的水平对齐方式:alignment 可以是 JTextField.LEFT 、 JTextField.CENTER 和 JTextField.RIGHT

javax.swing.JPasswordField

        JPasswordField 是一个轻量级组件,允许编辑单行文本,其视图指示键入内容,但不显 示原始字符。它是一个单行的密码框控件,具体使用方式和 JTextField 大致一样,所以不再 赘述。

使用控件实现登录窗口
 


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class LoginFrame extends JFrame {
    //容器
    private JPanel pnlMain;
    //标签控件
    private JLabel lblTitle;
    private JLabel lblUserName;
    private JLabel lblUserPwd;
    //输入用户名的文本框控件
    private JTextField txtUserName;
    //输入密码的密码框控件
    private JPasswordField pwdUserPwd;
    //登录和退出按钮控件
    private JButton btnLogin;
    private JButton btnQuit;

    public LoginFrame() {
        //实例化容器和各种控件
        pnlMain = new JPanel(null);
        lblTitle = new JLabel("用户登录");
        lblUserName = new JLabel("用户姓名:");
        lblUserPwd = new JLabel("用户密码:");
        txtUserName = new JTextField();
        pwdUserPwd = new JPasswordField();
        btnLogin = new JButton("登录");
        btnQuit = new JButton("退出");
        init();
    }
    /**该方法对窗口做初始化操作*/
    private void init() {
        //设置窗口的各个属性
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("登录窗口");
        this.setSize(300, 220);
        this.setResizable(false);
        /*设置各个控件的位置和坐标
         * setBounds()的前两个参数为控件的左上角坐标,后两个参数为控件的宽和高
         */
        lblTitle.setBounds(100, 10, 100, 30);
        lblUserName.setBounds(20, 60, 75, 25);
        lblUserPwd.setBounds(20, 100, 75, 25);
        txtUserName.setBounds(100, 60, 120, 25);
        pwdUserPwd.setBounds(100, 100, 120, 25);
        btnLogin.setBounds(50, 140, 75, 25);
        btnQuit.setBounds(150, 140, 75, 25);
        //将所有控件压在容器上
        pnlMain.add(lblTitle);
        pnlMain.add(lblUserName);
        pnlMain.add(lblUserPwd);
        pnlMain.add(txtUserName);
        pnlMain.add(pwdUserPwd);
        pnlMain.add(btnLogin);
        pnlMain.add(btnQuit);
        //将容器添加到窗口上
        this.add(pnlMain);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        LoginFrame loginFrame = new LoginFrame();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值