2014-03-25 59 views
1

在我如何在設置佈局爲空時設置JTable的界限?

public UI(){ 

I have JTextField,JButtons and labels 
I have also setLayout(null); 

} 

現在我試圖創建一個JTable

JTable table = new JTable(data, headers); 

,但它不會顯示,直到我拿出setLayout的

對於所有的按鈕,文本框和標籤我有setBounds();

如何在setLayout爲空時顯示JTable?

+0

請檢查['LayoutManager'](http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – alex2410

+0

Areyou它添加到一個JScrollPane? – MadProgrammer

+0

@MadProgrammer是'con.add(新的JScrollPane(table),BorderLayout.SOUTH);' –

回答

5

請勿使用null佈局,而應使用LayoutManagers。 Java爲你創造了令人驚歎的佈局,你只需要使用它,讓佈局完成你的工作,而不是努力計算位置和大小。

這是我的答案,但如果您堅持使用它,只需撥打setBounds(x,y,width,height)方法爲JTable。 但是,不要使用絕對定位(null佈局)。

//.... 
JScrollPane scrol = new JScrollPane(table); 
scrol.setBounds(table.getBounds()); 
//.... 
+0

@mKorbel:是的,你是對的,頭部不會顯示出來,不會將它添加到'JScrollPane'並設置scrollPane的邊界。 –

+0

我試過這樣做,但仍然沒有顯示任何'table.setBounds(10,10,100,100);' –

+2

@ Shiv Chand和任何東西在這裏解決你的帖子在這裏的衝突'1。如何在setLayout爲空時顯示JTable?v.s. '2。 con.add(新的JScrollPane(table),BorderLayout.SOUTH);',因爲只有一種方法可以顯示你的JTable,所以注意JTable不能爲'BorderLayout.SOUTH'空,否則就會創建一個10× 10像素 – mKorbel