标签: inputverifier

当焦点被JOptionPane窃取时,JButton保持按下状态

我是Swing的新手,我有一个情况.我正在设计一个应用程序,它根据xml文件输入(元数据)动态呈现GUI组件.现在,我的大多数JTextField都将InputVerifier设置为它们,以进行验证.只要输入无效,输入验证程序就会弹出JOptionPane.

现在,如果用户输入无效数据并向前移动并单击面板上的按钮,则会弹出一个对话框,用户必须对其进行响应.但在此之后,按钮也不会绘制以释放状态.它仍然看起来像被按下但实际上它不是.由于整个代码非常混乱,我将问题场景放在下面的代码中: -

我应该怎么做才能让JButton看起来没穿#?如果逻辑也被解释,我将不胜感激.

提前致谢.

package test;

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.InputVerifier;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class VerifierTest extends JFrame {

    private static final long serialVersionUID = 1L;

    public VerifierTest() {
        JTextField tf;
        tf = new JTextField("TextField1");

        getContentPane().add(tf, BorderLayout.NORTH);
        tf.setInputVerifier(new PassVerifier());

        final JButton b = new JButton("Button");
        b.setVerifyInputWhenFocusTarget(true);
        getContentPane().add(b, BorderLayout.EAST);
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (b.hasFocus())
                    System.out.println("Button clicked");
            }
        }); …
Run Code Online (Sandbox Code Playgroud)

java swing jtextfield joptionpane inputverifier

5
推荐指数
1
解决办法
1856
查看次数

DocumentListener Java,如何防止JTextBox中出现空字符串?

在此输入图像描述我一直致力于个人项目,以便在编程方面做得更好.我的目标是让它更加强大,我刚刚开始.我是现任计算机科学专业的学生.无论如何,我正在努力制作一部分程序,如图所示.我计算小时工资并提供一些我尚未实施的产出.我正在使用DocumentListener,因此它会自动计算.当文本从一个盒子中完全删除时,我收到一个错误.我试图用if语句修复它:

 if (tipMon.equals("") || tipMon == null) {
 tipMon.setText("0");
 }
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的.它还没有完成,我为noob代码道歉.我在两个月前开始实际编码.

 import java.awt.GridLayout;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyListener;

 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JTextField;
 import javax.swing.JOptionPane;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 import javax.swing.text.Document;
 import javax.swing.text.FieldView;

 public class deliveryDocListener extends JFrame implements ActionListener, 
DocumentListener{

private JLabel mon, tues, wed, thurs, fri, sat, sun, hourlyWage, blank, row2, monWage,
    tuesWage,wedWage,thursWage, friWage, satWage, sunWage, total, totalTips, totalHours, 
    totalHourlyEarnings, totalPay, weekPay;

private JTextField hourlyWageInput, tipMon, tipTues, tipWed, tipThurs, tipFri, tipSat, tipSun,
    hourMon, hourTues, hourWed, hourThurs, …
Run Code Online (Sandbox Code Playgroud)

java swing jtextfield inputverifier documentlistener

3
推荐指数
3
解决办法
4181
查看次数

在验证JTextFields的数值是否大于0后,在java中启用JButtons?

只有当所有字段中都存在有效数据时才会启用两个按钮,即数字值和无负数.您是如何做到的?

java swing jtextfield inputverifier documentlistener

2
推荐指数
2
解决办法
2445
查看次数

JTextField InputVerifier

我将输入验证器设置为我的文本字段:

public class MyInputVerifier extends InputVerifier {
@Override
public boolean verify(JComponent input) {
    String text = ((JTextField) input).getText();
    try {
        BigDecimal value = new BigDecimal(text);
        return (value.scale() <= Math.abs(4));
    } catch (NumberFormatException nfe) {
        return false;
    }
}

public static class Tester extends JFrame implements ActionListener {
    JTextField tf1;
    JButton okBtn;

    public Tester() {
        add(panel(), BorderLayout.CENTER);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 500);
        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Tester();
            }
        });
    } …
Run Code Online (Sandbox Code Playgroud)

java swing jtextfield inputverifier

1
推荐指数
1
解决办法
3834
查看次数

如何使用正则表达式验证JTable的第一列?

我正在制作一个程序,我必须验证第一列是否是IP地址.

到目前为止,我只想出了如何过滤行的方法.但是在将数据写入文件之前必须检查该列.

有人能帮助我吗?

java regex swing jtable inputverifier

0
推荐指数
1
解决办法
1427
查看次数