2013-12-09 4 views
0
에서 동일한 결과를 얻을 수

나는이 두 jtextfeilds (T1, T2) 및 하나의 JButton (B1) ...두 가지 방법

T1 - 입력 B1이 -result T2 - 액션

내가 원하는 t2에 t1 -> 1 + 2를 입력하면 입력 할 때 3이되어야합니다. 내가 버튼을 클릭 과 동시에 경우도 .. T2에서 3으로

내 질문에 결과를 표시합니다 -이 쉽게 사용하여 두 개의 이벤트 (B1에서 T1과의 actionPerformed 이벤트의 키 누름 이벤트를) 할 수 있습니다. 하지만 내가 원하는 것은 두 이벤트를 사용할 수없는 요구 사항에 따라 하나의 이벤트 만 필요하다는 것입니다. Plz 개미 하나 도와 줄래?

+0

를 사용할 수 있습니다. 완전히 다른 두 가지 사용자 입력 이벤트를 설명합니다 : 필드에 입력하고 버튼을 클릭하십시오. 두 가지 사건을 사용하지 않고 두 사건에 어떻게 대응할 수 있습니까? 실제 요구 사항은 무엇입니까? –

+0

요구 사항이 데이터베이스와 매핑되어 있습니다. 문제를 설명하기 만하면됩니다. 단순히 필드에 항목 코드를 입력하면됩니다. 또는 팝업 목록에서 항목 코드를 선택하면 t1로 설정해야합니다. 아이템 설명을 t2로 가져옵니다. 하지만 단 하나의 이벤트 만 원한다면 두 이벤트를 사용할 수 없습니다. – maXfenda

답변

0

-

당신은 모든 KeyListener를 사용할 수 있습니다 ", t1의 I 입력하면 내가 입력하고 때> 1 + 2 (T2)의 대답은 3으로해야한다"

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 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); 
+0

피드백을 주려고합니다. 고마워요 :) – maXfenda

+0

처음에 무슨 뜻인지 잘 모르 셨습니다. 내 대답을 편집하여 텍스트 필드와 버튼 모두에 대해 하나의 수신기 만 포함했습니다. 텍스트 필드의 경우 숫자를 입력 한 후 Enter 키를 누릅니다. –