2017-09-25 5 views
0

にボタンを追加カント私の問題は、私は私は私がここにコード パッケージLVLエラー になる理由を知らないメニュー を作っただろうアクションリスナー にボタンを追加カントでした。私はハイテクの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) { 
         } 


} 

} OH(これを)私はエラーが静的コンテキストでこれを使用することはできませんというエラーになって、それがcredits.addActionListenerでした。 助けてください

答えて

1

あなたはpublic static mainという静的コンテキストに属しています。静的コンテキストではthisはありません。無類のクラスのinsteedを使用してください。

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

感謝 – coolian

0
明らか

、あなたのクラスのメインとそれが法メイン(String []型引数)は静的であり、そして、あなたの主な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) { 

      } 
     }); 
関連する問題