文本框组件(JTextField)

文本框组件用来显示或编辑一个单行文本。

  1. package MyPackage_2;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. public class TestClass extends JFrame{
  7. public TestClass(String str){
  8. super(str);
  9. super.setBounds(100,100,350,200);
  10. super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  11. Container c1=super.getContentPane();
  12. c1.setLayout(new FlowLayout());//设置为流布局
  13. JTextField jt=new JTextField(20);
  14. /*
  15. 如果参数是int型,则表示该文本框的可见字符数;等价于“jt.setColumns(int x);”
  16. 如果参数是String型,则表示该文本框的初始内容;等价于”jt.setText("String str");“
  17. */
  18. jt.setFont(new Font("宋体",Font.PLAIN,20));
  19. /*
  20. 第一个参数是字体类型;第二个参数是字体格式;第三个参数是字体大小
  21. */
  22. JButton jb=new JButton("清空");
  23. jb.addActionListener(new ActionListener() {
  24. @Override
  25. public void actionPerformed(ActionEvent e) {
  26. System.out.println("文本框清空前的内容:"+jt.getText());//获取文本框的内容,打印在控制台
  27. jt.setText("");//清空文本框
  28. jt.requestFocus();//获取光标
  29. }
  30. });
  31. c1.add(jt);
  32. c1.add(jb);
  33. super.setVisible(true);//设置JF窗体可见
  34. }
  35. public static void main(String[] args) {
  36. TestClass d1=new TestClass("JF窗体");
  37. }
  38. }

运行结果:
image.png
点击“清空”按钮之后:
image.png

密码框组件(JPasswordField)

密码框文本框的定义与用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密(该符号可通过代码设置)。

package MyPackage_2;

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

public class TestClass extends JFrame{
    public TestClass(String str){
        super(str);
        super.setBounds(100,100,350,200);
        super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        Container c1=super.getContentPane();
        c1.setLayout(new FlowLayout());//设置为流布局
        JPasswordField jp=new JPasswordField();
        jp.setColumns(20);//设置长度为20个字符
        jp.setEchoChar('*');//设置显示字符为'*'
        jp.addActionListener(new ActionListener() {//按回车之后,后台可以看见前端输入的密码并打印在控制台
            @Override
            public void actionPerformed(ActionEvent e) {
                char s[]=jp.getPassword();//获取密码的字符,存在字符数组中
                String str=new String(s);
                System.out.println("密码:"+str);
            }
        });
        c1.add(jp);
        super.setVisible(true);//设置JF窗体可见
    }

    public static void main(String[] args) {
        TestClass d1=new TestClass("JF窗体");
    }
}

运行结果:
image.png

文本域组件(JTextArea)

文本域用来接收用户的多行文字。

package MyPackage_2;

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

public class TestClass extends JFrame{
    public TestClass(String str){
        super(str);
        super.setBounds(100,100,700,400);
        super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        Container c1=super.getContentPane();
        c1.setLayout(null);//设置为绝对布局
        JTextArea area=new JTextArea();
        area.setFont(new Font("微软雅黑",Font.PLAIN,20));
        area.setBounds(40,10,600,300);
        /*
        绝对布局中可以使用setBounds设置文本域的大小,其他布局中则可以使用setRows函数设置行数,setColumns函数设置列数
        area.setRows(6);
        area.setColumns(20);
        */
        area.setLineWrap(true);//当参数为true时,实现自动换行功能
        c1.add(area);
        super.setVisible(true);//设置JF窗体可见
    }

    public static void main(String[] args) {
        TestClass d1=new TestClass("JF窗体");
    }
}

运行结果:
image.png
除此之外,文本域还经常和滚动面板一起使用:

package MyPackage_2;

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

public class TestClass extends JFrame{
    public TestClass(String str){
        super(str);
        super.setBounds(100,100,700,400);
        super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        Container c1=super.getContentPane();
        c1.setLayout(null);//设置为绝对布局
        JTextArea area=new JTextArea();
        area.setFont(new Font("微软雅黑",Font.PLAIN,20));
        area.setLineWrap(true);//当参数为true时,实现自动换行功能
        JScrollPane js=new JScrollPane(area);//创建滚动面板对象js,参数时area文本域
        js.setBounds(40,10,600,300);//设置面板位置和大小
        c1.add(js);
        super.setVisible(true);//设置JF窗体可见
    }

    public static void main(String[] args) {
        TestClass d1=new TestClass("JF窗体");
    }
}

运行结果:
image.png