2014-01-22 32 views
1

我有使用JSCH在服務器上運行一個命令,得到如下結果出來Java中,字符串的JTable

rcpt 7554 Jan-21 01-03:43:27  ? /usr/bin/Program 
ncuser2 7202 Jan-21 01-04:22:08  ? /usr/bin/Program 
    lyn 6277 Dec-17 36-02:14:51  ? /usr/bin/Program 10.15.1.104:0.0 
    lyn 6268 Dec-17 36-02:15:17  ? /usr/bin/Program 10.15.1.104:0.0 

這些結果存儲在一個字符串的程序。

我需要做的是將這些結果轉換/輸出到JTable。

我不能工作了什麼是如何得到一個字符串在什麼上面到JTable中的多個單元格中搖擺,所以它看起來像這樣

User | PID | Launch | Runtime | TTYP | Program | 
    ----------------------------------------------- 
    rcpt | 7554| Jan-21 |01-03:43:27 | ? |/usr/bin/Program 
ncuser2| 7202| Jan-21 |01-04:22:08 | ? |/usr/bin/Program 
    lyn| 6277| Dec-17 |36-02:14:51 | ? |/usr/bin/Program 10.15.1.104:0.0 
    lyn| 6268| Dec-17 |36-02:15:17 | ? |/usr/bin/Program 10.15.1.104:0.0 

我有被發現的方式主要問題拆分字符串,我想在空間上做,看看這個。即使我可以將它分解成每個空間的變量,但我現在還沒有線索!

+0

你有沒有得到你的回答? – Prateek

回答

2

可以如下實現的:

public static void main(String[] args) { 

     String dataStr = "rcpt 7554 Jan-21 01-03:43:27  ? /usr/bin/Program\n" 
       + "ncuser2 7202 Jan-21 01-04:22:08  ? /usr/bin/Program\n" 
       + "lyn 6277 Dec-17 36-02:14:51  ? /usr/bin/Program 10.15.1.104:0.0\n" 
       + "lyn 6268 Dec-17 36-02:15:17  ? /usr/bin/Program 10.15.1.104:0.0\n"; 

     String rows[] = dataStr.split("\n"); 


     Vector<Vector<String>> dataVector = new Vector<Vector<String>>(); 
     for (String row : rows) { 
      row = row.trim(); //UPDATE 
      Vector<String> data = new Vector<String>(); 
      data.addAll(Arrays.asList(row.split("\\s+"))); 
      dataVector.add(data); 
     } 

     Vector<String> header = new Vector<String>(2); 
     header.add("User"); 
     header.add("PID"); 
     header.add("Launch"); 
     header.add("Runtime"); 
     header.add("TTYP"); 
     header.add("Program"); 

     TableModel model = new DefaultTableModel(dataVector, header); 
     JTable table = new JTable(model); 

     JFrame frame = new JFrame("DemoFrame"); 
     frame.add(new JScrollPane(table)); 
     frame.setSize(300, 200); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

OUTPUT

enter image description here

+0

我剛剛發現分裂以及一個命令,現在要看看這個,看看它的行爲,如果我想生病回到你身邊5 –

+0

不知道發生了什麼,它的接近,但它的一些東西輸出表格,一切都沿着右邊的單元格移動,所以用戶在PID字段中,等等有什麼想法? –

+0

ü以適當的格式從流中獲取字符串 – Prateek

0
  1. 分裂( 「\ n」)爲線
  2. 分裂( 「\ S +」)的細胞