📄 texttest.java
字号:
//TextTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
//需要实现CaretListener接口
public class TextTest extends JFrame implements CaretListener {
private JTextField tf = null; //文本框
private JTextArea ta = null; //文本区域
private JLabel lblPrompt = null; //提示标签
public TextTest() {
super("Swing Text Component Test");
Container cp = this.getContentPane();
tf = new JTextField(45); //创建文本框
ta = new JTextArea(5,45); //创建文本区域
lblPrompt = new JLabel("启动"); //创建标签
JScrollPane sp = new JScrollPane(ta); //把文本区域放在滚动面板中
/*将组件分别放到窗口中的位置*/
cp.add(tf , BorderLayout.NORTH);
cp.add(sp , BorderLayout.CENTER);
cp.add(lblPrompt , BorderLayout.SOUTH);
/*为文本框添加动作监听,捕捉回车动作*/
tf.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = ta.getText();
str = str.equals("") ? "" : "\n";
ta.append(str + tf.getText()); //把文本框中内容加入到文本区域中
tf.setText(""); //清空文本框
}
});
tf.addCaretListener(this); //为文本框添加Caret监听
ta.addCaretListener(this); //为文本区域添加Caret监听
ta.setLineWrap(true); //设置文本区域自动换行
}
/*必须重写该方法,以实现捕捉Caret事件*/
public void caretUpdate(CaretEvent e) {
if (e.getSource() == tf) { //如果是文本框引发
lblPrompt.setText("文本框引发,当前光标位置:" + e.getDot());
}
if (e.getSource() == ta) { //如果是文本区域引发
String str = "文本区域引发,";
str = str + "文本区域中有内容[" + ta.getLineCount() + "]行";
str = str + ",文本区域中光标位置:" + e.getDot();
lblPrompt.setText(str);
}
}
public static void main(String[]args) {
TextTest tt = new TextTest();
tt.setSize(300,140);
tt.setDefaultCloseOperation(EXIT_ON_CLOSE);
tt.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -