我想在一个窗口中显示两个JTable。目前我只能使用以下方式显示其中一个表:
JTable table1 = makeTable(1);
JTable table2 = makeTable(2);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPane scrollPane1 = new JScrollPane(table1);
JScrollPane scrollPane2 = new JScrollPane(table2);
frame.add(scrollPane1, BorderLayout.CENTER);
frame.validate();
frame.add(scrollPane1, BorderLayout.CENTER);
//frame.add(scrollPane2, BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setVisible(true);
frame.validate();
使用Swing显示多个表格的最简单方法是什么,一个在另一个之上(虽然方向是不可取的)?
答案 0 :(得分:4)
您无法将两个JTable添加到BorderLayout中的相同位置。
您可以做的是:
frame.add(scrollPane1, BorderLayout.CENTER);
frame.add(scrollPane2, BorderLayout.SOUTH);
frame.validate();
答案 1 :(得分:2)
在Prine的帮助下,我找到了满足我需求的解决方案。对于任何寻找基本方案来实现这种布局的人来说:
JTable table1 = makeTable(1);
JTable table2 = makeTable(2);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = frame.getContentPane();
c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));
c.add(table1.getTableHeader());
c.add(table1);
c.add(table2.getTableHeader());
c.add(table2);
frame.pack();
frame.setVisible(true);