У меня есть функция createUI (), которая загружает JPanel в СЕВЕР, ЮГ, ВОСТОК.
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));