2012-10-08 64 views
0

我目前正在學習Java的GUI開發,我應該做一個搖滾,紙,剪刀遊戲。到目前爲止,我已經制作了GUI本身(一個醜陋的,但仍然是GUI),但我不知道如何將您選擇的選項「連接」到if和else中。這是我到目前爲止有:Java界面:岩石,剪刀紙遊戲

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中的選擇?

+2

貴輸出說出正確的事情嗎? IE:玩家1選擇:搖滾,如果他確實選擇搖滾?只需創建一個字符串並比較兩者。 – Max

+0

是的,對話框顯示正確的選擇。我只是不知道如何繼續,你能舉個例子嗎? – Misoxeny

+0

謝謝你的答案。他們都工作得很好,我選擇了Max's,因爲與像我這樣的初學者合作會更容易一些。 :) – Misoxeny

回答

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

你快,我給你。但是我在電話中輸入了我的名字。 – Azulflame

+0

@azulflame我早些時候會回答,但是,我想在評論中證實他得到了正確的值;) – Max

+0

@azulflame你仍然會從我這裏得到讚揚。 – Max

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

重複供玩家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; 
} 

這應該工作