Java中图形用户界面(常用面板、文本组件)

学习目标:

  • 一个月掌握 Java 入门知识

学习内容:

  1. 常用面板——JPanel
  2. 常用面板——JScrollPane
  3. 文本组件——文本框
  4. 文本组件——密码框
  5. 文本组件——文字域

1. 常用面板——JPanel

可以添加组件并将组件组合到一起,但需将自身添加到别的容器中使用。无边框、不可移动与缩放、关闭。

package com.oy;

import javax.swing.*;
import java.awt.*;

/**
 * @author Vinyoo
 * @date 2025/2/11 9:57
 * 知识点:JPanle面板
 */
public class TestJPanel {
    public static void main(String[] args)
    {
        JFrame jFrame = new JFrame("JFrame窗体");
        jFrame.setLayout(new GridLayout(2,2,10,10));//网格布局管理器,两行两列,水平垂直间距10
        //创建四个JPanel面板,使用的是GridLayout布局管理器
        JPanel jPanel1 = new JPanel(new GridLayout(2,1,10,10));
        JPanel jPanel2 = new JPanel(new GridLayout(2,1,10,10));
        JPanel jPanel3 = new JPanel(new GridLayout(2,1,10,10));
        JPanel jPanel4 = new JPanel(new GridLayout(2,1,10,10));
        //四个面板中添加四个按钮
        jPanel1.add(new JButton("JPanle1的按钮"));
        jPanel2.add(new JButton("JPanle2的按钮"));
        jPanel3.add(new JButton("JPanle3的按钮"));
        jPanel4.add(new JButton("JPanle4的按钮"));
        //将四个面板添加到JFrame窗体
        jFrame.add(jPanel1);
        jFrame.add(jPanel2);
        jFrame.add(jPanel3);
        jFrame.add(jPanel4);
        jFrame.setSize(500,400);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

2. 常用面板——JScrollPane

这是一个带滚动条的面板容器,其中只能放置一个组件,且不能使用布局管理器。如果需要在其中放置多个组件,则需要将多个组件放置在JPanel面板容器上,再将JPanel面板作为一个整体组件添加到JScrollPane面板中


import javax.swing.*;

/**
 * @author Vinyoo
 * @date 2025/2/11 10:12
 * 知识点:JScrollPane
 */
public class TestJScrollPane {
    public static void main(String[] args)
    {
        JFrame jFrame = new JFrame("这是一个JFrame窗体");
        //创建文本域组件
        JTextArea jTextArea = new JTextArea(20,50);
        jTextArea.setText("带滚动条的文字编辑器");
        //创建一个显示指定内容的JScrollPane,只要组件的内容超过视图大小,就会显示水平和垂直滚动条
        JScrollPane jScrollPane = new JScrollPane(jTextArea);
        //将JScrollPane面板添加到JFrame窗体中
        jFrame.add(jScrollPane);
        jFrame.setSize(500,300);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

3. 文本组件——文本框

下面这个例子包含了构造文本框、添加按钮、使用按钮事件监听器。

package com.oy;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @author Vinyoo
 * @date 2025/2/11 10:26
 * 知识点:文本框
 */
public class TestJTextField {
    public static void main(String[] args)
    {
        JFrame jFrame = new JFrame("这是一个JFrame窗体");
        final JTextField jTextField = new JTextField("这是一个文本框",15);
        jFrame.add(jTextField);
        //添加一个清空按钮
        JButton jButton = new JButton("清空");
        //事件监听器:产生一个动作事件(在此处,点击“清空”按钮,就会清空文本框内内容,光标还在文本框内
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jTextField.setText("");  //清空文本框内容(原本文本框内容为“这是一个文本框”)
                jTextField.requestFocus();//回到文本框焦点,若不加改行,则光标会消失,需自行点击文本框后再添加内容
            }
        });
        jFrame.add(jButton);
        jFrame.setLayout(new FlowLayout());//使用流式布局管理器
        jFrame.setSize(500,300);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

4. 文本组件——密码框

下面这个例子包含了构造密码框、设置回显字符、添加按钮、使用按钮事件监听器。

package com.oy;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @author Vinyoo
 * @date 2025/2/11 10:44
 * 知识点:密码框
 */
public class TestPasswordField {
    public static void main(String[] args)
    {
        JFrame jFrame = new JFrame("这是一个JFrame窗体");
        //密码框内指定文本和列初始化
        final JPasswordField jPasswordField = new JPasswordField("123456789",15);
        //为密码输入框设置回显字符。回显字符被设置为*。输入密码时显示的是*号。
        jPasswordField.setEchoChar('*');
        jFrame.add(jPasswordField);
        JButton jButton = new JButton("清空");
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jPasswordField.setText("");
                jPasswordField.requestFocus();
            }
        });
        jFrame.add(jButton);
        jFrame.setLayout(new FlowLayout());
        jFrame.setSize(500,300);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

5. 文本组件——文字域

文字域的使用在“常用面板——JScrollPane”有体现。
设置文本域:new JTextArea(“文本域”,6,6);
设置文本域大小:jTextArea.setSize( , );
设置自动换行:jTextArea.setLineWrap(true);


代码部分注释写的很详细哦!试着练习一下吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值