下面是示例代码: |
class JTextFieldFilterextends PlainDocument { public static final StringFLOAT = "0123456789."; protected String acceptedChars = null; protected boolean negativeAccepted =false;
public JTextFieldFilter() { this(FLOAT); }
public JTextFieldFilter(String acceptedChars) { this.acceptedChars = acceptedChars; }
/** *设置是否接受负号 * * @param negativeAccepted * 是否接受负号 */ public void setNegativeAccepted(boolean negativeAccepted) { if (acceptedChars.equals(FLOAT)) { this.negativeAccepted = negativeAccepted; acceptedChars += "-"; } }
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
//判断输入的是否为允许的字符 for (int i = 0; i < str.length(); i++) { if (!acceptedChars.contains(str)) { return; } }
//判断当前输入的是否为".",如果有了再判断前面有没有输入过 if (acceptedChars.equals(FLOAT) || (acceptedChars.equals(FLOAT +"-") && negativeAccepted)) { if (str.contains(".")) { if (getText(0, getLength()).contains(".")) { return; } } }
//判断如果支持负数,那么负号(-)必须在第一位 if (negativeAccepted) { if (str.indexOf("-") != 0 || offset != 0) { return; } }
super.insertString(offset, str, attr); } }
publicclass Main extends JFrame {
public static void main(String[] argv)throws Exception { new Main(); }
public Main() { setLayout(new FlowLayout()); JLabel lb = new JLabel("only float"); JTextField tf = new JTextField(10); getContentPane().add(lb); getContentPane().add(tf); tf.setDocument(new JTextFieldFilter(JTextFieldFilter.FLOAT)); setSize(300, 300); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
- 浏览: 34453 次
最新评论
-
jianghongh:
在存在输入法的情况下,offs值存在问题,这个要怎么解决?
Swing —— 扩展PlainDocument限制JTextField只能输入字母与数字
相关推荐
而JTextArea是Swing组件库中的一个文本区域,常用于显示多行文本,用户可以读取但不能编辑。在某些情况下,我们可能希望将Log4j的日志输出直接重定向到JTextArea,以便于在GUI应用程序中实时查看日志信息。这在调试...
### Java Swing JTextArea 实现不可修改文本内容及右键菜单定制 #### 一、概述 在Java Swing开发中,`JTextArea` 是一个非常常用的组件,用于显示或编辑多行文本。有时候,我们可能需要创建一个只读的文本区域或者...
JTextArea是Swing库提供的一个多行文本编辑框组件,可以用于在GUI应用程序中显示和编辑大段文本。
在Java编程语言中,"JAVA初级编码——继承JDialog, 利用JTextArea显示文档中的内容"这个主题涉及到了两个核心概念:JDialog和JTextArea。JDialog是Java Swing库中的一个组件,它用于创建独立于主应用程序窗口的...
"swing jtextArea滚动条和文字缩放效果详解" swing jtextArea是Java Swing中的一种组件,用于显示多行文本。今天,我们将详细介绍swing jtextArea滚动条和文字缩放效果,并提供了相关的代码实例。 首先,让我们...
在Java Swing库中,`JTextArea` 是一个用于显示和编辑多行文本的组件。有时候在编程时,我们可能需要为 `JTextArea` 添加行号功能,以方便用户阅读和编辑代码或者数据。这个功能可以通过自定义边框来实现,就像标题...
### Swing中文乱码问题(Linux和Windows) #### Linux系统下的解决方案 在Linux系统下使用Swing进行GUI开发时,可能会遇到中文乱码的问题。解决这一问题通常需要对系统的编码环境进行适当的配置。以下是一个详细的...
今天,我们将学习如何使用 Java 弹出菜单来为 JTextArea 添加右键弹出式菜单,实现复制、粘贴、剪切功能。 一、Java 弹出菜单概述 Java 弹出菜单是一种 context-sensitive 菜单,即在用户点击右键时出现的菜单。它...
【Swing聊天室】是一个基于Java Swing库实现的简单在线交流平台。Swing是Java标准版(Java SE)的一部分,提供了丰富的用户界面组件,用于构建桌面应用程序。在这个聊天室项目中,用户可以通过客户端进行文字交流,...
Swing的组合框(JComboBox)可用于选择操作类型,文本组件(JTextField、JTextArea)用于输入或显示详细信息。 三、数据库交互 系统通过Java的JDBC(Java Database Connectivity)接口与数据库进行通信。在Swing...
Swing计算器是一款基于Java Swing库开发的简单计算工具。Swing是Java的一种图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,主要用于构建桌面应用程序。本项目的核心在于利用Swing组件来...
Swing组件是Java GUI(图形用户界面)编程中的核心元素,它是Java Foundation Classes (JFC) 的一部分。Swing提供了一系列丰富的组件,用于构建功能强大的桌面应用程序。在本实例中,我们将深入探讨Swing组件的使用...
首先,Swing提供了丰富的组件库,包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等,这些组件可以组合使用以创建各种复杂界面。例如,JFrame是窗口的基础,JPanel则可以作为容器...
Java Swing JTextArea 文本区域的实现示例 Java Swing JTextArea 文本区域是 Java Swing 库中的一种基本组件,用于编辑多行文本。JTextArea 组件可以编辑多行文本,并提供了许多有用的方法来处理文本。 概述 ...
例如,`JFrame`是窗口的基础,`JButton`用于创建按钮,`JLabel`用来展示文本或图像,而`JTextArea`和`JTextField`则提供了文本输入和显示的功能。此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和...
例如,使用JTable展示数据库查询结果,JButton触发业务逻辑,JComboBox提供选择项,JTextField和JTextArea用于输入和展示文本。每个系统可能包含不同的功能模块,如用户管理、权限控制、报表生成等,源码示例可以...
例如,JButton 可以创建按钮,JLabel 用于展示文本或图像,JTextField 用于输入文本,JTextArea 用于多行文本输入,JCheckBox 和 JRadioButton 则常用于选项选择。 布局管理器是Swing中的关键概念,它负责控制组件...
4. **JButton, JTextField, JLabel, JTextArea**:这些是Swing的基本组件,分别代表按钮、单行文本输入框、标签和多行文本区域。它们构成了用户界面的基本元素。 5. **布局管理器(Layout Managers)**:Swing提供...
例如,在示例1中,我们使用JTextArea和JScrollPane创建了一个文本域练习的界面,用户可以输入信息,然后将信息追加到文本域中,并可以滚动查看。 此外,JTextArea还可以触发DocumentEvent事件,当文本区中的文本...
本系统——"售楼管理系统"就是一个典型的Java-Swing应用实例,非常适合初学者或有经验的开发者用来学习和研究Swing的使用。 在Java-Swing中,我们首先会接触到JFrame,它是所有窗口应用的基础,相当于窗口容器,...