ここに質問の内容を詳しく書いてください。
Javaでじゃんけんのゲームを作っています。
グーチョキパーを選んだ後に、決定ボタンで次のウィンドウを立ち上げ中にボタン等を追加していきたいのですが、書き方がわかりません。void Verification()で新しくウィンドウ2を作ることができたのですが、中に情報を入れても反応しません。
ご回答よろしくおねがいします。
該当のソースコード
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
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 Janken extends JFrame
{
private JLabel ChooseLabel;
private String Hand;
//Janken frame1 = new Janken();//frameオブジェクト作成
//
//frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame1.setBounds(100, 10, 300, 200);//frame.setBounds(座標横, 座標高さ, サイズ横, サイズ高さ);
//frame1.setTitle("タイトル1");//frameのタイトル設定
//frame1.setVisible(true);//frame表示
public static void main(String[] args) { Janken frame1 = new Janken();//frameオブジェクト作成 frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setBounds(100, 10, 300, 200);//frame.setBounds(座標横, 座標高さ, サイズ横, サイズ高さ); frame1.setTitle("タイトル1");//frameのタイトル設定 frame1.setVisible(true);//frame表示 } Janken() { JLabel titleLabel = new JLabel("最初はぐーっじゃんけん??"); titleLabel.setOpaque(true); titleLabel.setForeground(Color.BLACK); titleLabel.setFont(new Font("Serif", Font.BOLD,80)); titleLabel.setSize(500,500); JPanel p1 = new JPanel(); p1.add(titleLabel); getContentPane().add(p1, BorderLayout.NORTH); //JLabel ChooseLabel = new JLabel 重要こう書くと上書きされてしまいボタンを押した時反応しなくなります ChooseLabel = new JLabel("選んだものが表示されます"); ChooseLabel.setOpaque(true); ChooseLabel.setForeground(Color.BLACK); ChooseLabel.setFont(new Font("Serif", Font.BOLD,30)); ChooseLabel.setSize(500,500); JPanel p2 = new JPanel(); p2.add(ChooseLabel); getContentPane().add(p2, BorderLayout.SOUTH); JPanel p3 = new JPanel(); p3.setLayout(null); JButton buttonRook = new JButton("グー");//ボタン追加 buttonRook.setBounds(300, 200, 150, 150); // button1.setBounds(座標横, 座標高さ, サイズ横, サイズ高さ); buttonRook.addActionListener(new ButtonRookActionListener()); JButton buttonCissors = new JButton("チョキ");//ボタン追加 buttonCissors.setBounds(600, 200, 150, 150); buttonCissors.addActionListener(new ButtonCissorsActionListener()); JButton buttonsPaper = new JButton("パー");//ボタン追加 buttonsPaper.setBounds(900, 200, 150, 150); buttonsPaper.addActionListener(new ButtonPaperActionListener()); JButton buttonsDecision = new JButton("決定");//ボタン追加 buttonsDecision.setBounds(1100, 500, 200, 100); buttonsDecision.addActionListener(new ButtonDecisionActionListener()); p3.add(buttonRook); p3.add(buttonCissors); p3.add(buttonsPaper); p3.add(buttonsDecision); getContentPane().add(p3, BorderLayout.CENTER);//センターしかなぜか配置できない } void Select() { ChooseLabel.setText(Hand+"でいいですか"); } void Verification()//2つ目のウィンドウの情報を入力かな?? { Verification frame2 = new Verification();//frameオブジェクト作成 frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame2.setBounds(100, 10, 300, 200);//frame.setBounds(座標横, 座標高さ, サイズ横, サイズ高さ); frame2.setTitle("タイトル2");//frameのタイトル設定 frame2.setVisible(true);//frame表示 JPanel p4 = new JPanel(); p4.setLayout(null); JButton buttontest = new JButton("グー");//ボタン追加 buttontest.setBounds(300, 200, 150, 150); p4.add(buttontest); getContentPane().add(p4, BorderLayout.CENTER); } class ButtonRookActionListener implements ActionListener { public void actionPerformed(ActionEvent e)//イベントが発生されたら呼び出される { Hand = "グー"; Select();//ここは新しいクラスなので一番上で改めてChooseLabelを定義してあげよう } } class ButtonCissorsActionListener implements ActionListener { public void actionPerformed(ActionEvent e)//イベントが発生されたら呼び出される { Hand = "チョキ"; Select(); } } class ButtonPaperActionListener implements ActionListener { public void actionPerformed(ActionEvent e)//イベントが発生されたら呼び出される { Hand = "パー"; Select(); } } class ButtonDecisionActionListener implements ActionListener { public void actionPerformed(ActionEvent e)//イベントが発生されたら呼び出される { Verification(); //下記は確認画面に遷移しないパターンなので上記をコメントアウトすれば使える
//// if(Hand == "グー")
//// {
//// ChooseLabel.setText("航也はパーを出した。やっぱグーか");
//// }
//// else if(Hand == "チョキ")
//// {
//// ChooseLabel.setText("航也はグーを出した。よっっっわっ");
//// }
//// else if(Hand == "パー")
//// {
//// ChooseLabel.setText("航也はチョキを出した。何度でも受けてやろう");
// }
} }
// //Verification確認画面のクラスを作成 空白のウィンドウを作りたいならもう1つ作ればいいんじゃないかな?
public class Verification extends JFrame
{
}
}
回答1件
あなたの回答
tips
プレビュー