2017-10-23 15 views
-3

이것은 내 코드입니다. 어떻게 동작 리스너를 추가 할 수 있습니까? 이미 알려진 메서드를 사용했지만 정적 메서드로 인해 추가 할 수 없습니다 .Netbeans IDE는 프로그램에서 동작 수신기를 제안했지만 그것을 사용할 수 없다면 누군가가 액션 리스너를 선언하는 더 간단한 방법을 제안 할 수있다.gridbaglayout에 동작 리스너를 추가 할 수 없습니다.

공용 클래스 석회질 {

public static void addComponentsToPane(Container pane) { 


     pane.setLayout(new GridBagLayout()); 
     GridBagConstraints gBC = new GridBagConstraints(); 

     gBC.ipady = 40; 
     gBC.ipadx = 40; 

     JTextField JTextField = new JTextField("Hello"); 
     gBC.fill = GridBagConstraints.HORIZONTAL; 
     gBC.gridx = 0; 
     gBC.gridy = 0; 
     gBC.gridwidth = 4; 
     JTextField.setEditable(false); 
     pane.add(JTextField, gBC); 

     //JButton jbnButton; 
     gBC.gridwidth = 1; 

     JButton b7 = new JButton("7"); 
     gBC.gridx = 0; 
     gBC.gridy = 1; 
     pane.add(b7, gBC); 
     // more calculator buttons declared here 

// 여기가 actionlistner

 b0.addActionListener(new java.awt.event.ActionListener() { 
     @Override 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      b0ActionPerformed(evt); 
     } 

     private void b0ActionPerformed(ActionEvent evt) } 
     ` 
    }); 
    b0.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(java.awt.event.ActionEvent evt) { 
     b0ActionPerformed(evt); 
    } 
    private void b0ActionPerformed(Actionenter Event evt) {} 
    });} 

    private static void createAndShowGUI() {} 

    public static void main(String[] args) { 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 

제안하는 방법} 내가 당신을 위해 이것을 시도

+0

는 SO에 오신 것을 환영합니다. https://stackoverflow.com/help/how-to-ask를 읽어보십시오. 어떤 컴포넌트에 actionListener를 추가 하시겠습니까? 그리고 지금까지 무엇을 시도 했습니까? –

+0

내 계산기 버튼이 원하는 작업을 수행하는 코드 어디에서나 리스너를 추가하려고합니다. 클릭하면 – Prapti

답변

0

합니다. 선언 한 모든 구성 요소에 대해 addComponentsToPane 메소드에 조치 수신기를 추가 할 수 있습니다. 또한 프레임을 전달하는 것을 잊어 버렸으므로 내가하는 것처럼 main 메서드로 전달할 수 있습니다.

public class Calc { 

public static void addComponentsToPane(Container pane) { 

    pane.setLayout(new GridBagLayout()); 
    GridBagConstraints gBC = new GridBagConstraints(); 

    gBC.ipady = 40; 
    gBC.ipadx = 40; 

    JTextField JTextField = new JTextField("Hello"); 
    gBC.fill = GridBagConstraints.HORIZONTAL; 
    gBC.gridx = 0; 
    gBC.gridy = 0; 
    gBC.gridwidth = 4; 
    JTextField.setEditable(false); 
    pane.add(JTextField, gBC); 

    //JButton jbnButton; 
    gBC.gridwidth = 1; 

    JButton b7 = new JButton("7"); 
    gBC.gridx = 0; 
    gBC.gridy = 1; 
    pane.add(b7, gBC); 
    // more calculator buttons declared here 

    b7.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      // Write your action here 

     } 
    }); 

} 

private static void createAndShowGUI(JFrame pane) { 
    addComponentsToPane(pane); 
    pane.setVisible(true); 
} 

public static void main(String[] args) { 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGUI(new JFrame()); 
     } 
    }); 
} 

}

+0

감사합니다. NetBeans 디자인 탭을 통해 GUI 프로그래밍을 항상 수행하기 때문에 문제가 발생했습니다. – Prapti

+0

내 대답을 정답으로 표시 할 수 있습니까? – Tadesse