文本框组件(JTextField)
文本框组件用来显示或编辑一个单行文本。
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());//设置为流布局JTextField jt=new JTextField(20);/*如果参数是int型,则表示该文本框的可见字符数;等价于“jt.setColumns(int x);”如果参数是String型,则表示该文本框的初始内容;等价于”jt.setText("String str");“*/jt.setFont(new Font("宋体",Font.PLAIN,20));/*第一个参数是字体类型;第二个参数是字体格式;第三个参数是字体大小*/JButton jb=new JButton("清空");jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("文本框清空前的内容:"+jt.getText());//获取文本框的内容,打印在控制台jt.setText("");//清空文本框jt.requestFocus();//获取光标}});c1.add(jt);c1.add(jb);super.setVisible(true);//设置JF窗体可见}public static void main(String[] args) {TestClass d1=new TestClass("JF窗体");}}
密码框组件(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窗体");
}
}
运行结果:
文本域组件(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窗体");
}
}
运行结果:
除此之外,文本域还经常和滚动面板一起使用:
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窗体");
}
}
运行结果:

