2017-09-25 67 views
0

您好我的問題是我不能將按鈕添加動作監聽 我會做出一個菜單 我不知道爲什麼我成爲一個錯誤 這裏的代碼 包拉特;我不能將按鈕添加到的ActionListener

import java.awt.Label; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Main extends JFrame implements ActionListener{ 

    private JButton button; 
    private JButton eintellungen; 
    private JButton credits; 
    private JButton schliessen; 


    public static void main(String[] args) { 

     JFrame meinJFrame = new JFrame(); 
     meinJFrame.setTitle("menu"); 
     JPanel panel = new JPanel(); 


    JButton button = new JButton("play"); 
    JButton schliessen = new JButton("schließen"); 
    JButton eintellungen = new JButton("einstellungen"); 
    JButton credits = new JButton("credits"); 
    panel.add(button); 
    panel.add(schliessen); 
    panel.add(credits); 
    panel.add(eintellungen); 
    credits.addActionListener(this); 


    meinJFrame.add(panel); 


    meinJFrame.setSize(500, 500); 

    meinJFrame.setVisible(true); 


} 

@Override 
public void actionPerformed(ActionEvent e) { 
         } 


} 

} 哦,我成爲一個錯誤的錯誤說,在靜態情況下不能使用此,它是由credits.addActionListener(本); 請幫助我

回答

1

您處於public static main的靜態環境中。靜態上下文中沒有this。使用自治的類保證。

credits.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
     //// handle action here 
    } 
}); 
+0

感謝您的幫助 – coolian

0

很明顯,你的類主要和它的方法主要(字串[] args)是靜態的,雖然你的主要實現的ActionListener,它不能使用導致方法addActionListener方法需要一個對象,靜態方法主要有沒有「這個'上下文。 可以

credits.addActionListener(new YourActionListener()); 


     meinJFrame.add(panel); 


     meinJFrame.setSize(500, 500); 

     meinJFrame.setVisible(true); 


    } 

} 
class YourActionListener implements ActionListener{ 

    @Override 
    public void actionPerformed(ActionEvent e) { 

    } 
} 

credits.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 

      } 
     });