0

私は現在、Java での GUI 開発について学んでおり、じゃんけんゲームを作成することになっています。これまでのところ、私は GUI 自体を作成しました (醜いものですが、それでも GUI です)。ただし、選択したものを if と else に「接続」する方法がわかりません。これは私がこれまでに持っているものです:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Oppgave extends JFrame implements ActionListener{

public JLabel title;
public JButton button;
public JList liste;
public JList liste2;

public Oppgave(){
    super("A game");
    setLayout(new BorderLayout());

    title = new JLabel("Rock, scissor, paper!");
    add(title, BorderLayout.NORTH);
    title.setHorizontalAlignment(SwingConstants.CENTER);

    String[] choice = {"Rock","scissor","paper"};
    liste = new JList(choice);
    liste.setSelectionMode(DefaultListSelectionModel.SINGLE_SELECTION);
    add(liste, BorderLayout.WEST);

    liste2 = new JList(choice);
    liste2.setSelectionMode(DefaultListSelectionModel.SINGLE_SELECTION);
    add(liste2, BorderLayout.EAST);

    button = new JButton("Play");
    add(button, BorderLayout.SOUTH);

    button.addActionListener(this);
}

    public void actionPerformed(ActionEvent e){
    if(e.getSource().equals(button)){
        JOptionPane.showMessageDialog(null, "Player 1 chose: "+liste.getSelectedValue());
        JOptionPane.showMessageDialog(null, "Player 2 chose: "+liste2.getSelectedValue());
    }

    }
}

だから今、プレイヤー1がロックを選んだ場合のように、ifとelseを作りたいと思っています。

if/else ステートメントで JList からの選択を使用するにはどうすればよいですか?

4

2 に答える 2

3

これがあなたが何をしようとすべきかについての私の理解です:

String player1Choice = liste.getSelectedValue()
String player2Choice = liste2.getSelectedValue()

if (player1Choice.equals(player2Choice)
    System.out.println("Draw"); // Or whatever you want to output to, could be another jLabel
else if(player1Choice.equals(rock) && player2Choice.equals(paper))
    System.out.println("Player 2 wins.");

// And just keep adding on here.....
于 2012-10-08T17:15:50.387 に答える
2

それで、あなたは出力を持っていて、何をすべきかわからないのですか?使用できるコード例:

String p1 = "";
String p2 = "";
if(liste1.getSelectedValue().equals("rock"))
{
    p1 = "rock";
}
if(liste1.getSelectedValue().equals("paper"))
{
    p1 = "paper";
}
if(liste1.getSelectedValue().equals("scissors"))
{
    p1 = "scissors";
}

p2 という文字列を使用して、プレーヤー 2 について繰り返します。それで:

Boolean player2win = false;
Boolean player1win = false;
Boolean tie = false;
if(p1.equals(p2))
{
    tie = true;
}
if(p1.equals("rock") && p2.equals("scissors"))
{
    player1win = true;
}
if(p1.equals("paper") && p2.equals("rock"))
{
    player1win = true;
}
if(p1.equals("scissors") && p2.equals("paper"))
{
    player1win = true;
}
else
{
    player2win = true;
}

それはうまくいくはずです

于 2012-10-08T17:24:32.470 に答える