2012-05-21 100 views
0

使用下面的代碼不可見的,不能設法得到列標題show..Added Jscroolpane爲好,但沒有運氣...列標題JTable中

String[] col = {"COLA","COLB","COLC"}; 
Object[][] data = {}; 

DefaultTableModel model = new DefaultTableModel(data,col); 


JTable table = new JTable(model); 
JScrollPane scrollPane = new JScrollPane(table); 

contentPane.add(table); 
table.setBounds(295, 11, 512, 411); 
contentPane.add(scrollPane,BorderLayout.CENTER); 

回答

2

這工作:

public static void main(String[] args) { 
    String[] col = { "COLA", "COLB", "COLC" }; 
    Object[][] data = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; 
    DefaultTableModel model = new DefaultTableModel(data, col); 
    JTable table = new JTable(model); 
    JFrame frame = new JFrame(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().add(new JScrollPane(table)); 
    frame.setVisible(true); 
} 
+0

如何我可以在當前幀使用此表?沒有顯示一個新的框架?試過contentPane.add(table);但沒有工作... – Sin5k4

+0

看看我的代碼中的包容層次結構:'框架 - >內容窗格 - > jscrollpane - > jtable'。所以在你的情況下,你只需將'JScrollPane'添加到你的內容窗格中...... –

3

當你構建JScrollPane的,你將它傳遞給它的唯一子組件。但是,您將表添加到contentPane,這意味着您將其從JScrollPane中移除並將其添加到內容窗格。您不能將該表添加到contentPane。只有scrollPane,它本身包含表格。

另外,從來沒有使用setBounds()。無論如何,因爲您使用的佈局管理器負責定位組件,所以它毫無意義。在這種情況下,由於該表由JScrollPane處理,所以它甚至是有意義的。

+0

我明白了,但如果我刪除contentPane.add(表),我不能看到表在所有... – Sin5k4