Java 通过两种方式获得相同的结果

Java 通过两种方式获得相同的结果,java,events,jbutton,jtextfield,keyevent,Java,Events,Jbutton,Jtextfield,Keyevent,我有两个JTextfeild(t1,t2)和一个jbutton(b1) t1-输入 t2-结果 b1-行动 我要做的是,如果我在t2中输入t1-->1+2,则在我键入时,答案应为3。 同时,如果我点击按钮,结果也会显示为t2中的3 我的问题-我可以使用两个事件(t1中的按键事件和b1中的actionperformed事件)轻松完成此操作。但是我想做的是我只需要一个事件,按照要求我不能使用两个事件?请找一个能帮我吗? “如果我在t2中输入t1-->1+2,则键入时答案应为3” 您可以使用KeyLi

我有两个JTextfeild(t1,t2)和一个jbutton(b1)

t1-输入 t2-结果 b1-行动

我要做的是,如果我在t2中输入t1-->1+2,则在我键入时,答案应为3。 同时,如果我点击按钮,结果也会显示为t2中的3

我的问题-我可以使用两个事件(t1中的按键事件和b1中的actionperformed事件)轻松完成此操作。但是我想做的是我只需要一个事件,按照要求我不能使用两个事件?请找一个能帮我吗?

“如果我在t2中输入t1-->1+2,则键入时答案应为3”

您可以使用KeyListener

t1.addKeyListener(new KeyAdapter(){
    public void keyReleased(KeyEvent e){
        int num1 = Integer.parseInt(t1.getText());
        int num2 = Integer.parseInt(t1.getText());
        tResult.setText(String.valueOf(num1 + num2);
    }
})
t2.addKeyListener(new KeyAdapter(){
    public void keyReleased(KeyEvent e){
        int num1 = Integer.parseInt(t1.getText());
        int num2 = Integer.parseInt(t1.getText());
        tResult.setText(String.valueOf(num1 + num2);
    }
})
上述内容将在每次对其中一个文本字段进行更新时进行计算,并在结果文本字段中更新结果

编辑:使用一个侦听器

t1.addActionListener(new MyListener());
t2.addActionListener(new MyListener());
button.addActionListener(new MyListener());

private class MyListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
        int num1 = Integer.parseInt(t1.getText());
        int num2 = Integer.parseInt(t1.getText());
        tResult.setText(String.valueOf(num1 + num2);
    }
}
或者您可以使用
操作

Action action = new AbstractAction(){
    public void actionPerformed(ActionEvent e){
        int num1 = Integer.parseInt(t1.getText());
        int num2 = Integer.parseInt(t1.getText());
        tResult.setText(String.valueOf(num1 + num2);
    }
});

t1.setAction(action);
t2.setAction(action);
button.setAction(action);

我不明白。您正在描述两个完全不同的用户输入事件:在字段中键入并单击按钮。如何在不使用两个事件的情况下响应两个事件?实际需求是什么?需求是与数据库的映射,我只是简单地解释一下问题。。我只想做的是,如果我在字段中键入项目代码,或者如果我从弹出列表中选择项目代码,我需要将其设置为t1,并将项目描述设置为t2。但我只想要一个事件,没有两个事件可以使用。我不确定你一开始的意思。我编辑了我的答案,只为文本字段和按钮包含一个侦听器。对于文本字段,输入数字后按enter键。