如何在joptionpane中打印所有数组元素?

9w11ddsr  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(382)

我想在joptionpane上打印一个数组,得到如下结果:

数组就是书单。我不知道该怎么做
以下是数组的代码:

String[] booksOfSubGenre = new String[bookInfo.size()];
        for (int i = 0; i < bookInfo.size(); i++) {
            int j = 0;
            if (bookInfo.get(i).getSubGenre().equals(selectedSubGenreInCombobox)) {
                subGenreCount++;
                System.out.println(subGenreCount);
                booksOfSubGenre[j] = bookInfo.get(i).getBookName();
            }
        }
knpiaxh1

knpiaxh11#

使用html格式化文本输出。
因此,您的文本字符串可能如下所示:

String text = "<html>There are two books of Sub-Genre Fantasy:<br>The Lost Hero<br>Another Book>";
polkgigr

polkgigr2#

要以该格式显示,可以使用string.format()创建字符串模板并传入数据。

String text = String.format("There are %o books of Sub-Genre Fantasy: %s", subGenreCount , bookInfo.get(i).getBookName());
JOptionPane.showMessageDialog(null, text, "Query Result", JOptionPane.INFORMATION_MESSAGE);

要显示多本书,可以将书名附加在一起并显示为一个字符串。

String appendedText = "";
    int subGenreCount = 0;
    String[] booksOfSubGenre = new String[bookInfo.size()];
    for (int i = 0; i < bookInfo.size(); i++) {
        int j = 0;
        if (bookInfo.get(i).getSubGenre().equals(selectedSubGenreInCombobox)) {
            subGenreCount++;
            System.out.println(subGenreCount);
            booksOfSubGenre[j] = bookInfo.get(i).getBookName();
            appendedText += bookInfo.get(i).getBookName() + "\n";
        }
    }
    String text = String.format("There are %o books of Sub-Genre Fantasy: %s", subGenreCount , appendedText);
    JOptionPane.showMessageDialog(null, text, "Query Result", JOptionPane.INFORMATION_MESSAGE);
shyt4zoc

shyt4zoc3#

类的所有showmessagedialog方法中第二个参数的类型,名为message javax.swing.JOptionPaneObject 这意味着它可以是任何类,包括像 javax.swing.JList .
考虑以下几点。

import java.awt.BorderLayout;

import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class OptsList {

    public static void main(String[] args) {
        String[] booksOfSubGenre = new String[]{"The Lost Hero",
                                                "The Hobbit",
                                                "A Game of Thrones"};
        int count = booksOfSubGenre.length;
        String subgenre = "Fantasy";
        JPanel panel = new JPanel(new BorderLayout(10, 10));
        String text = String.format("There are %d books of Sub-Genre %s", count, subgenre);
        JLabel label = new JLabel(text);
        panel.add(label, BorderLayout.PAGE_START);
        JList<String> list = new JList<>(booksOfSubGenre);
        panel.add(list, BorderLayout.CENTER);
        JOptionPane.showMessageDialog(null, panel, "Query Result", JOptionPane.INFORMATION_MESSAGE);
    }
}

运行上述代码会产生以下结果:

相关问题