gpt4 book ai didi

java - 如何在 JOptionPane 中多行打印数组

转载 作者:行者123 更新时间:2023-12-02 00:48:39 26 4
gpt4 key购买 nike

首先,我不是母语人士,所以请原谅我的错误^^

我正在编写一个程序,将所有素数获取到特定整数,并希望在 JOptionPane 最后打印所有素数。

实际上,我确实在一个单独的函数中计算所有素数,将它们全部返回到一个整数数组中,将该数组安全地保存到一个字符串中,然后在 JOptionPane 中打印该字符串。

但不幸的是,我只得到了一个!打印所有整数的极长行,穿过两个监视器。因此,当我打印 10000 以内的所有素数时,我会在一行中得到所有素数。

我希望,例如一行中只有 100 个素数,然后其余的打印在下一行中。但我怎样才能实现这个目标呢?

    check_button1.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

int x = Integer.parseInt(InputField1.getText());
int prime_numbers[];


String all_prime_String = Arrays.toString(number_theory.primes(x));
System.out.println(Arrays.toString(number_theory.primes(x)));


JOptionPane.showMessageDialog(Math_Collection_Gui.this, all_prime_String, "Ergebnis", JOptionPane.INFORMATION_MESSAGE);

}
});

number_theory.primes(x) 函数返回 x 之前所有素数的数组,然后我将这个数组保存在一个字符串中。

就像我说的,我的问题是,数组的所有值都打印在一行中。那么,为了固定框的长度或其他什么,程序是否有可能被迫跳到下一行?或者你还有什么其他技巧可以教我吗?

最佳答案

最简单的选择可能是只读文本区域:

JTextArea textArea = new JTextArea(all_prime_String, 8, 20);
textArea.setLineWrap(true);
textArea.setEditable(false);

JOptionPane.showMessageDialog(Math_Collection_Gui.this, new JScrollPane(textArea), "Ergebnis", JOptionPane.INFORMATION_MESSAGE);

如果您想麻烦的话,当然还有更易读的选择,例如将每个值放在 JList 行中。

如果您想在文本区域下方放置一些文本,请传递一个对象数组作为 JOptionPane 的消息:

Object[] message = {
new JScrollPane(textArea),
"Additional text here",
};
JOptionPane.showMessageDialog(Math_Collection_Gui.this, message, "Ergebnis", JOptionPane.INFORMATION_MESSAGE);

关于java - 如何在 JOptionPane 中多行打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57877750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com