2013-05-08 41 views
1

我正在製作一個程序,輸出一列中的數字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();} 
    } 
+2

對於Swing GUI的發現更多的細節,這將是最好的顯示JTable中的結果。您可以將結果放入一個2D Integer數組中,然後將該數組用作您的JTable模型的一部分。 – 2013-05-08 21:15:29

+0

是的 - JTable是一個更合適的GUI結構 - 不知道如果OP準備更多的Swing或只是想打印一些簡單的東西.. – Randy 2013-05-08 21:19:08

回答

3

格式化String使用HTML是一款優秀且經常被忽視的想法(+1至Maroun)

別的東西,往往得到了看是使用JComponent小號

enter image description here

的能力 JOptionPane
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); 
      } 
     }); 
    } 
} 

提供了一個基地,您可以支持「複製」或甚至可編輯數據,如果這樣的事情是對你有用的...

你可以在How to use Dialogs

+0

好的和詳細的答案! +1 – Maroun 2013-05-08 22:02:28

+0

很好的答案! BUt數字代表「Integer [10] [3]」是什麼意思? – Krappington 2013-05-09 14:18:04

+0

它分配一個10行和3列的2維整數數組。 – MadProgrammer 2013-05-09 20:48:16

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(...); 

但它不推薦,因爲你的文字可以出去之列。

+0

我正要建議一些HTML格式.. – Randy 2013-05-08 21:17:25

相關問題