📄 textfielddemo.java
字号:
//TextFieldDemo.java
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
public class TextFieldDemo extends JFrame
{
public TextFieldDemo()
{
//获取内容窗格容器
Container contentPane= this.getContentPane();
//设置内容窗格容器的布局管理器为FlowLayout
contentPane.setLayout(new FlowLayout());
//内容窗格容器中加入两个文本组件,第一个只能输入数字
DigitalText txtDigitalText = new DigitalText(10);
JTextField txtNormal = new JTextField(10);
contentPane.add(txtDigitalText);
contentPane.add(txtNormal);
//显示框架窗口
pack();
setVisible(true);
}
//应用程序的入口方法
public static void main(String args[])
{
TextFieldDemo frame = new TextFieldDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常推出Java虚拟机
System.exit(0);
}
});
}
}
//该类从JTextField中派生,只允许用户输入数字
class DigitalText extends JTextField
{
//构造方法
public DigitalText()
{
}
//构造方法
public DigitalText( int column)
{
super(column);
}
//构造方法
public DigitalText(String strText, int column)
{
super(strText,column);
}
//重写方法,用于创建Document模型
protected Document createDefaultModel()
{
//TODO: Override this javax.swing.JTextField method
return new DigitalTextDocument();
}
class DigitalTextDocument extends PlainDocument
{
//重写该方法,用于检查用户输入的字符以确保插入的字符是有效的数字字符
public void insertString( int offs, String str, AttributeSet a)
throws BadLocationException
{
if( str == null ) return;
try{
Integer.parseInt(str);
super.insertString(offs,str,a);
}
catch ( NumberFormatException e){
JOptionPane.showMessageDialog(null,
"请输入数字。",
"验证错误",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -