如何使输出出现在不同的列中?

我正在制作一个输出的程序,一列中的数字1-10,另一列中的数字的平方,以及第三列中的数字。

如何使程序更好一些,因此列真的不同。 对于每一列我都想添加标题(数字,数字平方,数字立方体)。

//对不起,我的英语不好

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Del2upp3 extends JFrame implements ActionListener { int i; JLabel label2 = new JLabel(); JPanel panel = new JPanel(); JButton button = new JButton("Press"); Del2upp3() { super ("Panel"); setSize (200,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container con = this.getContentPane(); con.add(panel); button.addActionListener(this); panel.add(label2); panel.add(button); setVisible(true); } public void actionPerformed(ActionEvent event) { Object source = event.getSource(); if (source == button) { StringBuilder string = new StringBuilder(); for( i = 1; i< 11; i++){ string.append("\n ").append(i); string.append(", ").append(i*i); string.append(", ").append(i*i*i); } JOptionPane.showMessageDialog(null, string,"Data", JOptionPane.PLAIN_MESSAGE); setSize (200,200); setVisible(true); i = 0; }} public static void main(String[] args){new Del2upp3();} } 

使用HTML格式化String是一个很好的,经常被忽视的想法(+1 to Maroun)

经常看到的其他东西是JOptionPane使用JComponent的能力

在此处输入图像描述

 import java.awt.EventQueue; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.table.DefaultTableModel; public class TableOptionPane { public static void main(String[] args) { new TableOptionPane(); } public TableOptionPane() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } Integer[][] values = new Integer[10][3]; StringBuilder string = new StringBuilder(); for (int i = 1; i < 11; i++) { values[i - 1][0] = i; values[i - 1][1] = i * i; values[i - 1][2] = i * i * i; } DefaultTableModel model = new DefaultTableModel(values, new Object[]{"i", "i * i", "i * i * i"}); JTable table = new JTable(model); JOptionPane.showMessageDialog(null, new JScrollPane(table), "Data", JOptionPane.PLAIN_MESSAGE); } }); } } 

如果这些东西对你有用,那么你可以提供一个基础,你可以支持诸如“复制”甚至数据的可用性等操作。

您可以在如何使用对话框中找到更多详细信息

在你的情况下最好使用JTable 。

但您可以使用HTML标签并执行以下操作:

 builder.append(""); string.append(""); string.append("
column1column2
"); string.append(.....); string.append(""); ... string.append("
");

要么:

 textArea.setText("column1\t\tcolumn2\n"); textArea.append("column1\t\tcolumn2\n"); textArea.append(...); 

但是不建议这样做,因为你的文字可以不在列中。