Java 如何在JOptionPane中以多行打印数组
首先,我不是以英语为母语的人,所以请原谅我的错误^^ 我正在编写一个程序,该程序将所有素数都设置为一个特定的整数,并希望最终在JOptionPane中打印所有素数 实际上,我在一个单独的函数中计算所有的素数,在一个整数数组中返回它们,将这个数组安全地保存到一个字符串中,然后在JOptionPane中打印该字符串 但不幸的是,我只得到一个!!非常长的一行,所有的整数都被打印出来,穿过两个监视器。例如,当我打印10000个素数时,我得到一行中的所有素数 我想,例如,一行中只有100个素数,其余的在下一行中打印。但我怎样才能做到这一点呢Java 如何在JOptionPane中以多行打印数组,java,arrays,swing,jframe,Java,Arrays,Swing,Jframe,首先,我不是以英语为母语的人,所以请原谅我的错误^^ 我正在编写一个程序,该程序将所有素数都设置为一个特定的整数,并希望最终在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);
}
});
数论。primes(x)函数返回x之前所有primes的数组,然后我用字符串保护这个数组
正如我所说,我的问题是,数组的所有值都打印在一行中。那么,有没有可能,为了修正盒子的长度或者其他什么,程序被迫跳转到下一行?或者你还有什么其他窍门吗?最简单的选择可能是只读文本区:
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);
顺便说一句,我只是忘了删除行“int prime_numbers[];”,它没有用处。顺便说一句,你可以用你的问题来删除没有用处的代码。谢谢,它是这样工作的!但是你知道有没有办法把这个滚动窗格和更多的文本结合起来?这样我就有了滚动窗格,然后在它下面有1-2行“普通文本”?@HyperPro更新了答案。通过传递包含多个消息部分的对象数组,可以传递多个消息部分。