在我的申請,我有類似於如下佈局:如何根據可用空間調整特定組件的大小?
@@@@@@@
XXXXXXX***
XXXXXXX***
XXXXXXX***
%%%%%%%
在這種佈局中,X
是一個JTable。其他組件可以保持相同的大小。有沒有一種佈局或策略可以讓JTable(X
)根據可用的屏幕大小調整大小,並讓其他所有內容都保持正確?
謝謝。
在我的申請,我有類似於如下佈局:如何根據可用空間調整特定組件的大小?
@@@@@@@
XXXXXXX***
XXXXXXX***
XXXXXXX***
%%%%%%%
在這種佈局中,X
是一個JTable。其他組件可以保持相同的大小。有沒有一種佈局或策略可以讓JTable(X
)根據可用的屏幕大小調整大小,並讓其他所有內容都保持正確?
謝謝。
這看起來很像我的BorderLayout。你嘗試過嗎?
它也可以用GroupLayout完成,但它是爲GUI構建器設計的,因爲它非常冗長。所以如果你已經有了現有的代碼,你可能不想先嚐試它。
我是JGoodies FormLayout的忠實粉絲。下面是一個使用FormLayout完成此操作的示例代碼。
JPanel panel = new JPanel();
FormLayout layout = new FormLayout("100dlu, 20dlu:grow", "pref, pref, pref");
panel.setLayout(layout);
JTextField t1 = new JTextField();
JTextField t2 = new JTextField();
JTable tb = new JTable();
JScrollPane sp = new JScrollPane();
sp.setViewportView(tb);
CellConstraints cc = new CellConstraints();
panel.add(t1, cc.xy(1, 1));
panel.add(t2, cc.xy(1, 3));
panel.add(sp, cc.xyw(1, 2, 2));
如何讓頂部和底部組件佔據BorderLayout的整個寬度?當我嘗試它時,它將水平地填充所有三個組件。 – 2009-12-22 22:11:38
您可以使用三個BorderLayout面板p1,p2,p3和 '@'設置爲p1的北部,'X'爲p1的中心,'%'爲p1的南部。 '*'p2的中心與Box.createRigidArea(大小)添加到北部和第四。 和p3將包含p1和p2,其中p1作爲CENTER和p2作爲EAST。 – dennisjtaylor 2009-12-22 22:39:47
是的,我知道你可以用多種佈局來做。我只是好奇,如果最初的答案是表明它可以完成只有一個佈局。 – 2009-12-24 16:40:01