文本组件

《零基础学Java》


  • 文本组件

    文本组件在实际的项目开发中使用的最为广泛,尤其是 文本框 与 密码框 组件。

  • JTextField文本框组件

    文本框(JTextField)是用来 显示编辑 一个单行文本,在 Swing 中通过 javax.swing.JTextField类 对象创建(该类继承了 javax.swing.JTextComponent类)。

    常用的 JTextField文本框 构造方法

    1. public JTextField(); 构造一个无参的文本框。

    2. public JTextField(text); 构造一个指定文本(初始值)的文本框。

    3. public JTextField(fieldwidth); 构造一个指定列数的文本框。

    4. public JTextField(text , fieldwidth); 构造一个指定文本、指定列数的文本框。

    JTextField文本框组件 实例

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    
    public class Demo9 extends JFrame {
        public Demo9(){
            setBounds(100,100,250,100);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            Container c = getContentPane();
            c.setLayout(new FlowLayout());
    
            JTextField jt = new JTextField();//添加一个文本框
            jt.setText("初始值");//设置文本框的初始值
            jt.setColumns(20);//设置文本框的长度为20个字符
            jt.setFont(new Font("黑体",Font.PLAIN,20));//设置文本字体格式为 黑体,普通样式,字体大写为20
            c.add(jt);
    
            JButton btn = new JButton("确认");//创建一个按钮
            btn.addActionListener(new AbstractAction() {//添加按钮事件
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println("文本框的内容为:"+jt.getText());//获取文本框中的文本值
                    jt.setText("");//清空文本框中的内容
                    jt.requestFocus();//获取焦点(光标)
                }
            });
            c.add(btn);
    
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo9();
        }
    }
    
    

    JTextField文本框组件 实例输出结果:

  • JPasswordField密码框组件

    密码框(JPasswordField)与文本框的定义、用法基本相同,唯一不同的是密码框会将用户输入的字符串进行加密(密码框对象是通过 javax.swing.JPasswordField 类创建的)。

    JPasswordField密码框组件 常用的构造方法

    1. public JPasswordField();

    2. public JPasswordField(text);

    3. public JPasswordField(fieldwidth);

    4. public JPasswordField(text , fieldwidth);

    JPasswordField密码框组件 实例

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    
    public class Demo10 extends JFrame {
        public Demo10(){
            setBounds(100,100,500,100);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            Container c = getContentPane();
            c.setLayout(new FlowLayout());
    
            JPasswordField jp = new JPasswordField();//创建一个密码框
            jp.setColumns(20);//设置密码框长度为20
            jp.setFont(new Font("Arial",Font.BOLD,18));//设置密码框字体为Arial,加粗,字号18
            jp.setEchoChar('#');//设置密码框显示的字符为#
    
            jp.addActionListener(new AbstractAction() {//添加动作监听(触发方式:回车)
                @Override
                public void actionPerformed(ActionEvent e) {
                    char ch[] = jp.getPassword();//获取密码框的字符数组 赋值给ch
                    String str = new String(ch);
                    System.out.println(str);
                }
            });
    
            c.add(jp);
    
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo10();
        }
    }
    

    JPasswordField密码框组件 实例输出结果:

  • JTextArea文本域组件

    文本域(JTextArea)可以在程序中接受用户输入的多行文字。

    JTextArea文本域组件 常用的构造方法

    构造方法 解释
    public JTextArea(); 构造JTextArea类的对象
    public JTextArea(text); 构造一个指定文本的JTextArea类的对象
    public JTextArea(rows , columns); 构造一个指定行数、列数,没有指定文本的JTextArea类的对象

    JTextArea文本域组件 实例

    import javax.swing.*;
    import java.awt.*;
    
    public class Demo11 extends JFrame {
        public Demo11(){
            setBounds(100,100,200,100);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            Container c = getContentPane();
            c.setLayout(new FlowLayout());
    
            JTextArea jt = new JTextArea();//创建一个文本域
            JScrollPane jp = new JScrollPane(jt);//给文本域添加滚动面板
    
            jt.setFont(new Font("楷体",Font.BOLD,20));//设置文本域字体
            jt.setText("这是文本域的默认值");//设置文本域的默认值
            jt.setRows(5);//设置文本域默认的行数
            jt.setColumns(20);//设置文本域默认的列数
            jt.append("添加内容");//在文本域原来默认值的后面添加内容
            jt.insert("内容",2);//在文本域的第二个字符后面插入内容
    
            c.add(jp);
    
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo11();
        }
    }
    

    JTextArea文本域组件 实例输出结果:

posted on 2022-03-25 21:54  TeaTracing  阅读(195)  评论(0编辑  收藏  举报