栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

该方法

verify
实际上不是打开JOptionPane的好地方。

您可以考虑采用几种方法来解决问题:

  1. 您希望此JOptionPane每次在文本字段失去焦点并且输入不正确时出现:在JTextField上使用FocusListener并对适当的事件进行操作
  2. 您希望此JOptionPane每次按下按钮时出现:如果输入不正确,请使用ActionListener进行操作。

这是后一种选择的一小段:

import java.awt.BorderLayout;import java.awt.frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;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() {        final JTextField 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() { @Override public void actionPerformed(ActionEvent e) {     if (!tf.getInputVerifier().verify(tf)) {         JOptionPane.showMessageDialog(tf.getParent(), "illegal value: " + tf.getText(), "Illegal Value",      JOptionPane.ERROR_MESSAGE);     }     if (b.hasFocus()) {         System.out.println("Button clicked");     } }        });        setDefaultCloseOperation(EXIT_ON_CLOSE);    }    public static void main(String[] args) {        frame frame = new VerifierTest();        frame.setSize(400, 200);        frame.setVisible(true);    }    class PassVerifier extends InputVerifier {        @Override        public boolean verify(JComponent input) { final JTextField tf = (JTextField) input; String pass = tf.getText(); return pass.equals("Manish");        }    }}

还可以考虑设置Jframe的默认关闭操作,而不是添加窗口侦听器(但是,如果要弹出对话框询问用户是否确定要退出应用程序,则使用WindowListener是一个好方法)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号