Swing常用的文本组件有TextField和TextArea两个组件,两者的区别是,TextArea可以滚动设置自动换行,TextField不可设置滚动。
一、JtextField
JtextField组件的常用方法如下
package SwingComponent;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TextFieldTest implements ActionListener {
public static void main(String[] args) {
TextFieldTest textFieldTest=new TextFieldTest();
textFieldTest.go();
}
private void go() {
JFrame frame=new JFrame();
JTextField field=new JTextField();
//获得文本内容
System.out.println(field.getText());
//设置文本内容
field.setText("someting");
//取得用户输入晚按下enter或者return的事件
field.addActionListener(this);
//读取文本字段的内容
field.selectAll();
//将GUI的焦点拉回文本方便用户进行输入操作
field.requestFocus();
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Hello");
}
}
二、JtextArea
JtextArea组件使用的例子代码如下
package SwingComponent;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TextFieldTest implements ActionListener {
JTextArea text;
public static void main(String[] args) {
TextFieldTest textFieldTest=new TextFieldTest();
textFieldTest.go();
}
private void go() {
JFrame jFrame=new JFrame();
JPanel panel=new JPanel();
JButton button=new JButton();
//为按钮设置一个自定义的监听器
button.addActionListener(this);
//声明TextArea对象 设置大小
text=new JTextArea(10,20);
//设置textarea自动换行
text.setLineWrap(true);
//设置滚动面板 如果想要滚动 就需要把TextArea的内容粘到ScrollPane上
JScrollPane scrollPane=new JScrollPane(text);
//设置显示垂直滚动条
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
//设置不显示水平滚动条
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
//添加滚动条到面板
panel.add(scrollPane);
//添加按钮到框架中 同时使用默认的BorderLayout布局管理器
jFrame.getContentPane().add(BorderLayout.CENTER,panel);
jFrame.getContentPane().add(BorderLayout.SOUTH,button);
jFrame.setSize(300,300);
jFrame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
text.append("Button clicked \n");
}
}