Tag: jtextfield

如何将JTextField限制为ax个字符数

我必须限制JTextField中的字符数。 我使用以下代码来做到这一点,但问题是我使用虚拟键盘将数据提供给JTextField。 所以偏移量始终设置为0。 当我输入超过指定数量的字符时,它会重置字段并从头开始执行。 例如,如果我的限制是3个字符并且我输入xyz0我的有限文本框会将字符读取到z ,然后清除该字段并重新启动。 所以我在场上留下了0 。 代码如下。 public class JTextFieldLimit extends PlainDocument { private int limit; public JTextFieldLimit(int limit) { super(); this.limit = limit; } @Override public void insertString( int offset, String str, AttributeSet attr ) throws BadLocationException { if (str == null) return; System.out.println(“from document helper getLength():”+getLength()); System.out.println(“from document helper str.length():”+str.length()); System.out.println(“from […]

如何在JTextField中显示微弱的灰色“鬼文本”?

我不知道我是否得到了正确的名称,但是我想看看是否有一种特定的方法来实现一个文本字段,这样当它没有焦点并且是空的时候,一个微弱的灰色字符串文本显示在字段中。 单击该字段时,文本应该消失,就像StackOverflow的搜索栏一样。 我知道我可以改变使用setForeground()和焦点监听器来完成这个,但我只是想知道是否有人知道一些Java实现可以为我处理这个问题。

检测JTextField“取消选择”事件

是否有某种方法可以检测是否取消选择了JTextField,即选择了字段WAS,但现在您已经选择了其他内容。 我之所以这样做,是因为我想在用户表单中检查任何非法字符,然后再尝试提交数据。 如果有一些更容易的方法,而不是我试图解决它的方式,我会很乐意接受启蒙。

如何将注意力集中在JTextField上?

我让我的游戏没有鼠标运行所以使用指针不是一个选择。 当玩家输球时,高分菜单会显示。 这是我的代码 highScore=new MyTextField(“Your Name”); highScore.addKeyListener(this); highScore.setFont(font); highScore.requestFocusInWindow(); 我努力了 highScore.setFocusable(true); highScore.requestFocusInWindow(); highScore.requestFocus(true); highScore.requestFocus(); 但仍然没有把注意力集中在我的JTextField 。 如何关注它?

只允许将数字和符号( – )输入JTextField

我正在尝试创建一个数学测验,我只希望用户能够输入数字,无论它们是负数还是正数。 有没有办法这样做? 我曾经想过使用正则表达式,但我听说它们使用起来很糟糕。 我尝试使用keylistener,但如果用户粘贴了怎么办? 我试过解析字符串得到一个整数但负面符号不起作用。 有任何想法吗? package com.quiz.ui; import java.awt.BorderLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class SSCCE { private JFrame frame; private JPanel contentPane; private JTextField usernameField; public static void main(String[] arguments) { new SSCCE().construct(); } public void construct() { frame = new JFrame(“Login”); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(getContentPane()); frame.pack(); frame.setVisible(true); } […]

Swing – Thread.sleep()停止JTextField.setText()工作

可能重复: 对单个线程使用sleep() 使用Thread.sleep()时,我遇到了JTextField.setText()的问题。 这是我正在制作的基本计算器。 当输入字段中的输入格式不正确时,我希望“INPUT ERROR”出现在输出字段中5秒钟,然后清除它。 当我只将文本设置为“INPUT ERROR”并打印出中间的文本时,setText()方法确实有效,我发现它确实可以同时使用它和setText(“”)。 当我在它们之间放置Thread.sleep()时会出现问题。 这是代码的SSCCE版本: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.regex.Pattern; import javax.swing.*; public class Calc { static Calc calc = new Calc(); public static void main(String args[]) { GUI gui = calc.new GUI(); } public class GUI implements ActionListener { private JButton equals; private JTextField inputField, outputField; public GUI() […]

如何只允许在jTextField中引入数字?

我试图使用此处显示的示例,但java显示错误消息 “AttributeSet无法解析为类型” 这就是为什么我试图使用另一种只允许数字的方法: txtUsername.addKeyListener(new MyKeyListener()); public class MyKeyListener extends KeyAdapter{ public void keyPressed(KeyEvent ke){ System.out.println(“Key pressed code = “+ke.getKeyCode()); if (ke.getKeyCode()>=48 && ke.getKeyCode()<=57) return true; else return false; } } 但是当然它没有用,因为keyPressed方法是void 。 那么,为了在textfield中只打印数字怎么办?

如何取消焦点JTextField

当我的应用程序加载(使用netbeans)时,第一个JTextField会自动聚焦,在这个JTextField中,我写了“输入你的用户名”,当用户点击这个字段时,它会消失,但是当加载应用程序时,这个领域是重点,意味着我看不到“输入你的用户名”,如何在启动时不重点?