2014-03-25 3 views
1

저는 Java를 처음 사용 했으므로 나와 함께하시기 바랍니다. AboutFrame이라는 새 프레임을 열려면 버튼을 가져 오려고했지만 버튼을 누를 때마다 아무 일도 일어나지 않습니다.ActionListener가 아무 것도하지 않습니다.

내가 먼저 ActionListener를 구현합니다

class MainFrame extends JFrame implements ActionListener { 

가 그럼 난 (일반 슈퍼 ("blabla") 후, ...) 버튼을 설정 한 후

JButton info = new JButton("About Failsafe"); 
    info.addActionListener(this); 

그리고 :

public void actionPerformed(ActionEvent event) { 
String command = event.getSource().toString(); 
    if (command == "info") { 
     AboutFrame abt = new AboutFrame(); 
    } 
} 

여기서 내가 뭘 잘못하고 있니? 나는 어떤 실수를 볼 수 없습니다 ..

+0

abt.setVisible (True) – Srinath

+0

동일한 조건을 사용해도 조건이 참이 될 수 없습니다. 'event.getSource(). toString();'이 반환하는 것을 인쇄하려고 했습니까? 'if (info == event.getSource())' –

답변

2

올바르게 명령 텍스트를받지 못하고있어 :

JButton button = (JButton) event.getSource(); 
String command = button.getText(); 

if (command.equals("About Failsafe")) 
{ 
    AboutFrame abt = new AboutFrame(); 
    abt.setVisible(true); 
} 

을 아니면 JButton info; 선언 (대신 로컬 하나의) 인스턴스 변수 인 경우, 당신은 할 수 귀하의 경우 검사 :

if (event.getSource() == info) 
+0

첫 번째 솔루션이 효과가있었습니다! 정말 고마워 :) – TheGie

0

시도 :

if (event.getSource()==info) {} 

대신 if (command=="info") {}.

+0

'if (command.equals ("info"))'어떻게 사용합니까? "info"는 JButton의 명령 텍스트가 아니라 변수 이름입니다. – splungebob

+0

당신 말이 맞아요. 내 실수. 죄송 해요. – zomnombom

관련 문제