我有一个设置为的框架:
setExtendedState(JFrame.MAXIMIZED_BOTH);
现在我有一个Jtable,在日食的设计阶段我完全符合框架:
但是当我运行程序时,我在右侧浪费了太多空间:
如何扩展它以填满右侧的空白区域?
答案 0 :(得分:3)
要使JTable
填充可用空间,请将其放在JPanel
内有BorderLayout
布局管理器的位置。
JTable table = new JTable();
// Set up table, add data
yourFrame.getContentPane().add( new JScrollPane( table ), BorderLayout.CENTER );
更新:正如camickr
所建议的那样你不需要getContentPane()。从JDK4开始,您只需将组件直接添加到框架中,然后就会自动添加到内容窗格中。
yourFrame.add( new JScrollPane( table ), BorderLayout.CENTER
答案 1 :(得分:-1)
如果您只有JTable,以下代码应该适合您:
JFrame jframe = new JFrame();
jframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
JTable jtable = new JTable();
jtable.setBackground(Color.yellow);
jframe.getContentPane().add(jtable);
jframe.setVisible(true);
如果您需要向JFrame添加更多组件,我建议您以这种方式使用布局
JFrame jframe = new JFrame();
jframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
GridLayout layout = new GridLayout(); //chose your favorite
JTable jtable = new JTable();
jtable.setBackground(Color.yellow);
Container contentPane = jframe.getContentPane();
contentPane.setLayout(layout);
contentPane.add(jtable);
jframe.setVisible(true);