如何使 JTable 适合 JFrame 的大小?
How to fit a JTable to the size of JFrame?
我有一个框架设置为:
setExtendedState(JFrame.MAXIMIZED_BOTH);
现在我有一个 Jtable,在 eclipse 的设计阶段我已经完全适合框架:
但是当我 运行 程序时,我在右侧浪费了很多 space,如下所示:
如何扩展它以填充右侧的空白 space?
要使 JTable
填充可用的 space,请将其放入具有 BorderLayout
布局管理器的 JPanel
中。
JTable table = new JTable();
// Set up table, add data
yourFrame.getContentPane().add( new JScrollPane( table ), BorderLayout.CENTER );
更新:根据camickr
的建议
you don't need the getContentPane(). Since JDK4 you can just add components directly to the frame and then will be added to the content pane automatically.
yourFrame.add( new JScrollPane( table ), BorderLayout.CENTER
如果您只有 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);
我有一个框架设置为:
setExtendedState(JFrame.MAXIMIZED_BOTH);
现在我有一个 Jtable,在 eclipse 的设计阶段我已经完全适合框架:
但是当我 运行 程序时,我在右侧浪费了很多 space,如下所示:
如何扩展它以填充右侧的空白 space?
要使 JTable
填充可用的 space,请将其放入具有 BorderLayout
布局管理器的 JPanel
中。
JTable table = new JTable();
// Set up table, add data
yourFrame.getContentPane().add( new JScrollPane( table ), BorderLayout.CENTER );
更新:根据camickr
的建议you don't need the getContentPane(). Since JDK4 you can just add components directly to the frame and then will be added to the content pane automatically.
yourFrame.add( new JScrollPane( table ), BorderLayout.CENTER
如果您只有 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);