イベント処理
javaでプログラムを作り始めて間がないのですが、イベント処理に関して行き詰ってしまいました。望む動作は、メニュー→ゲーム→じゃんけんと選択すると、初期の状態として「じゃんけん・・・・」という文字とボタンが表示され、どれかボタンを押すと対応して「~ボタンが押されました」と表示させたいのですが、作ったプログラムだと、ボタンを押しても反応しません。後々メニューにもいくつかアイテムを追加したり、最終的にはコンピュータとじゃんけんをするプログラムを書きたいと思っています。ifを使った方法しか思いつかないのですが、どこがおかしいのでしょうか?
import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;
public class question extends JFrame implements ActionListener{
JLabel label1;
JPanel p2;
public static void main(String[] args){
question test = new question("質問");
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);
}
question(String title){
setTitle(title);
setBounds( 10, 10, 300, 250);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("メニュー");
JMenu submenu = new JMenu("ゲーム");
JMenuItem subitem1 = new JMenuItem("じゃんけん");
subitem1.addActionListener(this);
subitem1.setActionCommand("Start");
submenu.add(subitem1);
menu.add(submenu);
menuBar.add(menu);
setJMenuBar(menuBar);
JPanel p1 = new JPanel();
p2 = new JPanel();
label1 = new JLabel("");
JButton btn1 = new JButton("グー");
btn1.addActionListener(this);
btn1.setActionCommand("goo");
JButton btn2 = new JButton("チョキ");
btn2.addActionListener(this);
btn2.setActionCommand("cyoki");
JButton btn3 = new JButton("パー");
btn3.addActionListener(this);
btn3.setActionCommand("paa");
p1.add(label1);
p2.add(btn1);
p2.add(btn2);
p2.add(btn3);
getContentPane().add(p1, BorderLayout.PAGE_START);
getContentPane().add(p2, BorderLayout.PAGE_END);
p2.setVisible(false);
}
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if (cmd.equals("Start")){
p2.setVisible(true);
label1.setText("じゃんけん・・・・");
if (cmd.equals("goo")){
label1.setText("グーが押されました");
}else if (cmd.equals("cyoki")){
label1.setText("チョキが押されました");
}else if (cmd.equals("paa")){
label1.setText("パーが押されました");
}
}
}
}
お礼
ドンピシャですw ありがとうございました!