Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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
Java 在JOptionPane中显示数组(字符串)的内容_Java_Arrays_String_Swing - Fatal编程技术网

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

Java 在JOptionPane中显示数组(字符串)的内容,java,arrays,string,swing,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 = ""; suitNa

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

第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;
  }
}
类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]);
        }
    }
}
我试图显示用户输入的卡片名

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之前构建输出字符串

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


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

另一种方法取决于拥有一个集合的牌组,每个新牌都添加到该集合中:

class Deck {
    private List<Card> cards = new ArrayList<Card>();
    ...
}
然后displayAll变得非常简单:

public void displayAll() {
    JOptionPane.showMessageDialog(null,
        new JScrollPane(new JList(cards.toArray())));
}

另一种方法取决于拥有一个集合的牌组,每个新牌都添加到该集合中:

class Deck {
    private List<Card> cards = new ArrayList<Card>();
    ...
}
然后displayAll变得非常简单:

public void displayAll() {
    JOptionPane.showMessageDialog(null,
        new JScrollPane(new JList(cards.toArray())));
}

你想展示什么?你好,先生。我正在尝试显示用户输入的卡片名。另请参见。@ConorSherman,我添加了List cardName=new ArrayList,我认为这与cardName有关。addsomething这里,我不知道语法。您想显示什么?您好,先生。我正试图显示用户输入的卡片名。另请参见。@ConorSherman,我添加了List cardName=new ArrayList,我认为这与cardName有关。addsomething这里,我只是不知道语法。哦,我明白了。非常感谢你!如果我要在另一个DisplayDeck类中调用displayAll,参数应该是什么?谢谢一排卡片。卡片[]卡片=新卡片[此处的大小];卡片[0]=新卡片。。。哦,我明白了。非常感谢你!如果我要在另一个DisplayDeck类中调用displayAll,参数应该是什么?谢谢一排卡片。卡片[]卡片=新卡片[此处的大小];卡片[0]=新卡片。。。非常感谢你!公共字符串toString是否属于类别卡?当我运行程序时,JOptionPane不显示任何内容。是的,我选择在卡中覆盖toString。老实说,我的最初也没有显示任何东西。我忘了把每张新卡都加到名单上。对不起,我想我不明白。我不知道你指的是哪一加?像这样添加卡片。添加卡片;?很抱歉,我是Java新手。但是谢谢你!是,卡片=新卡片;cards.addcard,注意单数;如果您使用上面的通用声明,您不必强制转换卡来添加它。谢谢!我应该把这些放在赋值整型值里面吗?因为Eclipse说复制局部变量卡,所以我将两次出现的卡更改为card1,但仍然不起作用。即使我把它放在里面。我很抱歉,谢谢你,非常感谢!公共字符串toString是否属于类别卡?当我运行程序时,JOptionPane不显示任何内容。是的,我选择在卡中覆盖toString。老实说,我的最初也没有显示任何东西。我忘了把每张新卡都加到名单上。对不起,我想我不明白。我不知道你指的是哪一加?像这样添加卡片。添加卡片;?很抱歉,我是Java新手。但是谢谢你!是,卡片=新卡片;cards.addcard,注意单数;如果您使用上面的通用声明,您不必强制转换卡来添加它。谢谢!我应该把这些放在赋值整型值里面吗?因为Eclipse说复制局部变量卡,所以我将两次出现的卡更改为card1,但仍然不起作用。即使我把它放在里面。我很抱歉,谢谢你。