【发布时间】:2010-10-05 19:49:45
【问题描述】:
我有一个 createUI() 函数,它将 JPanel 加载到 NORTH、SOUTH、EAST 中。
private void createUI() {
add(createToolBar(), BorderLayout.NORTH);
add(createDataView(), BorderLayout.SOUTH);
add(createHistoryView(), BorderLayout.EAST);
createMenuBar();
setTitle("My Application");
}
每个组件都显示在正确的位置,但是,它们都在固定大小的 JPanel 中。我想知道 JPanel 是否有可能完全填满 BorderLayout 区域。
例如,createDataView() 是一个带有表格的简单 Jpanel。我希望它水平扩展,并有一个固定的高度。
private JPanel createDataView(){
JPanel panel = new JPanel();
String data[][] = {{"001","vinod","Bihar","India","Biology","65","First"},
{"002","Raju","ABC","Kanada","Geography","58","second"},
{"003","Aman","Delhi","India","computer","98","Dictontion"},
{"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
{"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"}};
String col[] = {"Roll","Name","State","country","Math","Marks","Grade"};
JTable table = new JTable(data,col);
table.setPreferredScrollableViewportSize(new Dimension(900,100));
JTableHeader header = table.getTableHeader();
header.setBackground(Color.yellow);
JScrollPane pane = new JScrollPane(table);
table.setAutoResizeMode(JTable.WIDTH);
table.doLayout();
panel.add(pane);
return panel;
}
现在我依靠手动设置尺寸。不过,我会想办法获取当前窗口的宽度,并将其设置如下。
table.setPreferredScrollableViewportSize(new Dimension(900,100));
【问题讨论】:
-
你在南“细胞”里塞了两件东西……它们之间的关系应该如何?