Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javagui:石头剪刀纸游戏_Java_User Interface_If Statement_Jlist - Fatal编程技术网

javagui:石头剪刀纸游戏

javagui:石头剪刀纸游戏,java,user-interface,if-statement,jlist,Java,User Interface,If Statement,Jlist,我目前正在学习用Java开发GUI,我打算制作一个石头、纸、剪刀游戏。到目前为止,我已经制作了GUI本身(一个丑陋的GUI,但仍然是一个GUI),但我不知道如何将所做的选择“连接”到if和else中。这就是我到目前为止所做的: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class Oppgave

我目前正在学习用Java开发GUI,我打算制作一个石头、纸、剪刀游戏。到目前为止,我已经制作了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选择了岩石,那么检查玩家2选择了什么,并显示赢家


如何在if/else语句中使用JLists中的选项

以下是我对您应该尝试做什么的理解:

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.....

以下是我对您应该尝试做什么的理解:

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.....

所以你有了输出却不知道该怎么办? 您可能要使用的示例代码:

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";
}
对播放器2重复上述操作,使用名为p2的字符串。然后:

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;
}

这应该行得通,所以你有了输出却不知道该怎么办? 您可能要使用的示例代码:

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";
}
对播放器2重复上述操作,使用名为p2的字符串。然后:

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;
}

这应该行得通

您的输出是否正确?IE:玩家1选择了:摇滚,如果他真的选择了摇滚?只需创建一个字符串并比较两者。是的,对话框会显示正确的选择。我只是不知道如何继续,你能举个例子吗?谢谢你的两个答案。它们都很好用,我选择了Max's,因为对于像我这样的初学者来说,它更容易使用您的输出是否正确?IE:玩家1选择了:摇滚,如果他真的选择了摇滚?只需创建一个字符串并比较两者。是的,对话框会显示正确的选择。我只是不知道如何继续,你能举个例子吗?谢谢你的两个答案。它们都很好用,我选择了Max's,因为对于像我这样的初学者来说,它更容易使用我承认你比我快。但是我在电话上打了我的。@Azulframe我本来可以早一点回答的,但是,我想在评论中确认他得到了正确的值;)我看到了,但我花了10分钟才在手机上打出来。你8分钟前发的。我从他对你的回答中找到了答案comment@azulflame:是的,我在雨中驾驶摩托车时在手机上打下了这条评论。评论和答案都是+1。好久没笑了,伟大的人都有同感。我相信你比我快。但是我在电话上打了我的。@Azulframe我本来可以早一点回答的,但是,我想在评论中确认他得到了正确的值;)我看到了,但我花了10分钟才在手机上打出来。你8分钟前发的。我从他对你的回答中找到了答案comment@azulflame:是的,我在雨中驾驶摩托车时在手机上打下了这条评论。评论和答案都是+1。好久没笑了,伟人的想法都一样。