我正在編程一個菜單,以前用於所有基於文本的遊戲。我正在嘗試使用addActionListener在單擊按鈕時打印一行文本,所以我可以計算出將來如何實現我的主代碼。我遇到的問題是在我的JButton上使用addActionListener方法。我正在用JFrame執行所有這些操作。從別人說的話來說,我用這個作爲參數,但得到一個「不能從靜態上下文中引用的非靜態變量」錯誤。這裏是我的代碼:與按鈕一起使用actionListener
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Menu
{
public static void Menu()
{
JButton button = new JButton("Click to enter");
button.setBounds(125, 140, 150, 20);
JFrame frame = new JFrame("Casino");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(button);
button.addActionListener(this);
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(400, 300));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
@Override
String s = "Welcome!";
System.out.println(s);
}
}
別除非你知道你在做什麼,否則使用靜態變量和方法。不要隨機開始編寫GUI程序。首先閱讀[Swing教程](http://docs.oracle.com/javase/tutorial/uiswing/TOC.html)。有很多例子會告訴你如何創建和構建你的程序。 – camickr