首页 新闻 会员 周边 捐助

求大神,swing每次点击文本框就出来一个数字键盘,最终出现多个数字键盘,该如何解决???

0
悬赏园豆:15 [待解决问题]

利用Java swing编写的一个程序,每次点击文本框会弹出一个数字键盘,所以最终程序会有很多个数字键盘,技术菜鸟请求大神给些思路或者办法????

        private JTextField freq = new JTextField();
    private JTextField power = new JTextField();
    private JTextField workTime = new JTextField();
    private JTextField sendTime = new JTextField();
    private JTextField stopTime = new JTextField();
    private JTextField modulationRate = new JTextField();
    private JTextField modulationBrand = new JTextField();
    
    freq.addMouseListener(new KeyMouseClick(freq));//对频率文本框添加监听事件
    power.addMouseListener(new KeyMouseClick(power));//对功率添加监听事件
    workTime.addMouseListener(new KeyMouseClick(workTime));
    sendTime.addMouseListener(new KeyMouseClick(sendTime));
    stopTime.addMouseListener(new KeyMouseClick(stopTime));
    modulationRate.addMouseListener(new KeyMouseClick(modulationRate));
    modulationBrand.addMouseListener(new KeyMouseClick(modulationBrand));
        
    //鼠标点击事件类
    public class KeyMouseClick extends MouseAdapter {

        private JTextField jtf ;
    
        public KeyMouseClick(JTextField jtx) {
            this.jtf = jtx ;
        }
        @Override
        public void mouseClicked(MouseEvent m) {
            new Thread(new NumberKey(jtf)).start();//开启数字键盘线程
           }
        }
        
        //数字键盘窗口
        public class NumberKey extends JFrame implements Runnable{
            public NumberKey(JTextField jtf) {
            this.tx = jtf ;
            initComponents();//初始化各组件
            }
}
csn_Arno的主页 csn_Arno | 初学一级 | 园豆:187
提问于:2019-07-09 11:37
< >
分享
所有回答(4)
0

加个判断:是否已经弹出,如果弹出了就不再重复弹出。不知道可否实现。

会长 | 园豆:12463 (专家六级) | 2019-07-09 11:39

好的,我想想

支持(0) 反对(0) csn_Arno | 园豆:187 (初学一级) | 2019-07-09 11:43
0

如果你只要弹出一个数字键盘,可以考虑单利模式

三人乐乐 | 园豆:4823 (老鸟四级) | 2019-07-10 14:12
0

你这在线程里开启,还没关闭

nywd | 园豆:208 (菜鸟二级) | 2019-07-10 18:36
0

为什么要new这么多~你new一个就好了啊!!

队长给我球。 | 园豆:324 (菜鸟二级) | 2019-07-17 11:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册