현재 작은 텍스트 기반 게임을 개발 중이며 오류가 계속 발생합니다 ... JFrame
을 처음 사용 한 이후로 문제를 해결하는 방법을 모르겠습니다. 문제는 방법을 ButtonDemo()
으로 만들 때 public static void ButtonDemo()
이 아니라 ButtonDemo()
에 문제가있는 것입니다. 그러나 public static void ButtonDemo()
인 경우 jbtnW.addActionListener(this)
에 오류가 있으며 ButtonDemo()
이 static
이기 때문에 "this"를 사용할 수 없다고 말합니다.JFrame 메서드 prob
package game;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import game.Storylines.*;
public class Frame implements ActionListener{
VillageDrengr shops = new VillageDrengr();
static JLabel jlab;
static JFrame jfrm = new JFrame("A Game");
public static void ButtonDemo() {
jfrm.setLayout(new FlowLayout());
jfrm.setSize(500, 350);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jbtnW = new JButton("Equipment Shop");
JButton jbtnP = new JButton("Potion Shop");
jbtnW.addActionListener(this);
jbtnP.addActionListener(this);
jfrm.add(jbtnW);
jfrm.add(jbtnP);
jlab = new JLabel("Choose a Store.");
jfrm.add(jlab);
jfrm.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Equipment Shop"))
jlab.setText("You went in to the Equipment Shop.");
else
jlab.setText("You went in to the Potion Shop.");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ButtonDemo();
}
});
}
}
그래서 ** 정확히 ** ** ButtonDemo() 메소드에서 가지고있는 문제는 무엇입니까? 당신은 "문제가있다"고 말할뿐입니다 ... 오류가 무엇입니까? 스택 추적을 붙여 넣을 수 있습니까? –
어쩌면 당신은 메소드 대신에 생성자를 원했고,'main'에서'new ButtonDemo()'를 할 수 있습니다. .. 생성자'public ButtonDemo() {}' –