2014-11-06 2 views
-1

질문이 있습니다. 이클립스에서 WindowBuilder를 사용하고 코드를 입력하면 필자의 액션 리스너가 작동하지 않습니다. 나는 모든 것을 시도했다.WindowBuilder Eclipse가 actionlistener에 응답하지 않습니다.

또 다른 질문은 WindowBuilder를 사용할 때 내 프레임 객체의 이름은 무엇입니까? 나는 그것이 내 수업에서 만들어진 것이라는 것을 알지만, 그것은 이름을 가지고 있지 않습니다. 로컬 변수

if(event.getSource() == regMaterijalaButt) 

로 버튼을 정의하는 경우

public OrdinacijaGui() 
{ 



    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setVisible(true); 
    setBounds(600 , 300 , 450 , 300); 
    setTitle("Dr Idrizovic"); 

    getContentPane().setLayout(null); 

    JButton regUslugaButt = new JButton("Registar usluga"); 
    regUslugaButt.setBounds(10, 11, 150, 30); 
    getContentPane().add(regUslugaButt); 


    JButton regMaterijalaButt = new JButton("Registar materijala"); 
    regMaterijalaButt.setBounds(10, 71, 150, 30); 
    getContentPane().add(regMaterijalaButt); 


    JButton regIntervencijaButt = new JButton("Registar intervencija"); 
    regIntervencijaButt.setBounds(10, 131, 150, 30); 
    getContentPane().add(regIntervencijaButt); 


    JButton regDijagnozaButt = new JButton("Registar dijagnoza"); 
    regDijagnozaButt.setBounds(10, 191, 150, 30); 
    getContentPane().add(regDijagnozaButt); 


    JButton exitButt = new JButton("Zavrsetak rada"); 
    exitButt.setBounds(143, 232, 150, 30); 
    getContentPane().add(exitButt); 


    JButton evidencijaPacButt = new JButton("Evidencija pacijenata"); 
    evidencijaPacButt.setBounds(230, 11, 200, 30); 
    getContentPane().add(evidencijaPacButt); 


    JButton zakazivanjePacButt = new JButton("Zakazivanje pacijenata"); 
    zakazivanjePacButt.setBounds(230, 71, 200, 30); 
    getContentPane().add(zakazivanjePacButt); 


    JButton evidencijaStomatologaButt = new JButton("Evidencija stomatologa"); 
    evidencijaStomatologaButt.setBounds(230, 131, 200, 30); 
    getContentPane().add(evidencijaStomatologaButt); 


    JButton izvrseneUslugeButt = new JButton("Izvrsene usluge"); 
    izvrseneUslugeButt.setBounds(230, 191, 200, 30); 
    getContentPane().add(izvrseneUslugeButt); 


    thehandler handler = new thehandler(); 

    regUslugaButt.addActionListener(handler); 
    regMaterijalaButt.addActionListener(handler); 
    regIntervencijaButt.addActionListener(handler); 
    regDijagnozaButt.addActionListener(handler); 
    exitButt.addActionListener(handler); 
    evidencijaPacButt.addActionListener(handler); 
    zakazivanjePacButt.addActionListener(handler); 
    evidencijaStomatologaButt.addActionListener(handler); 
    izvrseneUslugeButt.addActionListener(handler); 

} 



public class thehandler implements ActionListener 
{ 
    public void actionPerformed(ActionEvent event) 
    { 

     if(event.getSource() == regMaterijalaButt) 
     { 
      RegistarMaterijala regMat = new RegistarMaterijala(); 
     } 

     if (event.getSource() == exitButt) 
     { 
      System.exit(0); 

     } 

    } 
} 
+0

: http://stackoverflow.com/questions/26326496/what-is-wrong-with- my-layout-code 및 http://stackoverflow.com/questions/26784502/setbounds-not-working-properly. 주어진 조언을 듣지 않을 때 계속 질문하는 이유는 무엇입니까? 그뿐 아니라 이전 질문의 답변을 "수락하지"않았습니다. 그래서 나는 이것을 건너 뛸 것이다. – camickr

+0

null 레이아웃에 관한 것이 아니라 여기에 대한 actionlistener입니다. – vulovicv

+0

그러나 코드는 여전히 null 레이아웃을 사용합니다. 즉, 이전 질문의 답변이나 이전 질문의 대답을 듣지 못했기 때문에 계속 도움을 요청해야합니다. 다시 질문 해? – camickr

답변

2

당신의 버튼을 한 번 로컬 변수로 한 번 변수 인스턴스로 두 번 정의

JButton regMaterijalaButt = new JButton("Registar materijala"); 

위입니다 ActionListener가 인스턴스 변수를 참조하고 있습니다.

귀하의 코드가 있어야한다 : 나는 두 번 당신이 널 (null) 레이아웃을 사용하지 않는 것이 좋습니다 된 것을 볼 수

//JButton regMaterijalaButt = new JButton("Registar materijala"); 
regMaterijalaButt = new JButton("Registar materijala"); 
관련 문제