java - 在 JOptionPane 中显示(字符串)数组的内容

标签 java arrays string swing

我这里有三个类,它们要求输入并应在对话框中显示字符串数组。

第 1 类:

public class Card {

  public int rank;
  public int suit;
  public String rankName;
  public String suitName;
  public String cardName;

  public Card () {
    rank = 0;
    suit = 0;
    rankName = "";
    suitName = "";
    cardName = "";
  }

  public int getRank() {
    return rank;
  } 
  public void setRank(int rank) {
    this.rank = rank;
  }
  public int getSuit() {
    return suit;
  }
  public void setSuit(int suit) {
    this.suit = suit;
  }
  public String getRankName() {
    return rankName;
  }
  public void setRankName(String rankName) {
    this.rankName = rankName;
  }
  public String getSuitName() {
    return suitName;
  }
  public void setSuitName(String suitName) {
    this.suitName = suitName;
  }
  public String getCardName() {
    return cardName;
  }
  public void setCardName(String cardName) {
    this.cardName = cardName;
  }
}

Class 2 - 这是我应该输出存储在数组中的字符串的类。我认为我在做泛型部分时走在正确的轨道上,但我不喜欢这样做。请指导我打印所有这些。

import javax.swing.JOptionPane;

public class Deck {

    public void assignIntegerValues(Card card) {
        //Card card = new Card();
        String[] suitNameArray = {"Clubs", "Spades", "Hearts", "Diamonds"};
        String[] rankNameArray = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"};
        List<Card> cardName = new ArrayList();

        card.setSuitName  (suitNameArray[card.getSuit()-1]);
        card.setRankName (rankNameArray[card.getRank()-1]);
        card.setCardName (card.getSuitName() + "-" + card.getRankName());
        JOptionPane.showMessageDialog(null, card.cardName);
    }

    public void displayAll (Card card) {
        for (int i=0; i<card.cardName.length(); i++) {
            String print = JOptionPane.showMessageDialog(null, card.cardName[i]);
        }
    }
}

第 3 类:

import javax.swing.JOptionPane;

public class DisplayDeck {

    public static void main(String[] args) {

        Card card = new Card();
        Deck deck = new Deck();
        int answer;
        String again;

        do {
            String suitString = JOptionPane.showInputDialog("Suit: ");
            card.setSuit (Integer.parseInt(suitString));

            String rankString = JOptionPane.showInputDialog("Rank: ");
            card.setRank (Integer.parseInt(rankString)); 

            deck.assignIntegerValues(card);
            String answerString = JOptionPane.showInputDialog("Try again? (1/0) ");
            answer = Integer.parseInt(answerString);
        } while (answer == 1);

        deck.displayAll(card);

    }
}

我正在尝试显示用户输入的cardNames。

最佳答案

public void displayAll (Card[] cards) {
    String output = "";
    for (int i=0; i<cards.length(); i++) {
        output += cards[i].getCardName() + "\n";
    }
    JOptionPane.showMessageDialog(null, output);
}

您需要将一个数组传递给 displayAll,否则您只有一张卡。

然后,在实际创建 JOptionPane 之前构建输出字符串。

关于java - 在 JOptionPane 中显示(字符串)数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11743861/

相关文章:

java - 在 Java 中,如何创建线程以便每个线程都专门运行在一个内核中?

java - Hbase 1.0.0连接池

python - 用于匹配 URL 和失败的非 URL 的正则表达式

java - 逻辑或和模运算符在 Java 中表现奇怪

Java:创建一个以字母字符为索引的数组

java - 在 JMeter 的 BeanShell 采样器中将字符串解析为整数

c++ - C++:段错误(核心已转储)

java - 如何索引将(moSTLy)连续整数映射到字符串的 CSV 文件,以便我可以在 Java 中有效地搜索它?

java 通过雅虎发送电子邮件

arrays - SWIFT 字符串?没有名为 'element' 的成员