我正在制作一个输出的程序,一列中的数字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();}
}
答案 0 :(得分:4)
最好在你的情况下使用JTable。
但您可以使用HTML Tags并执行以下操作:
builder.append("<html><table border=1><tr><td>column1</td><td>column2</td><td></tr>");
string.append("<tr><td>");
string.append(.....);
string.append("</td><td>");
...
string.append("</td></tr>");
string.append("</table></html>");
<击>或者:击>
<击>textArea.setText("column1\t\tcolumn2\n");
textArea.append("column1\t\tcolumn2\n");
textArea.append(...);
但不推荐这样做,因为你的文字可以不在列中。
答案 1 :(得分:3)
使用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);
}
});
}
}
如果这些东西对您有用,那么提供一个基础可以支持诸如“复制”甚至是数据的可操作性这样的操作的附加利益......
找到更多详情