Java 如何使JTable像windows那样调整大小?
我正在使用swing和jfreechart在eclipse中制作一个应用程序,我有以下问题: 正如你在截图中所看到的,我有一个带有几个组件的框架。问题在于JTable,无论我是否调整窗口大小,它总是具有相同的大小。我希望表格能够像其他组件一样调整大小,比如右边的ChartPanel,但我不知道怎么做。contentPane有一个带有三个面板的边框布局:Java 如何使JTable像windows那样调整大小?,java,swing,jtable,jfreechart,windowbuilder,Java,Swing,Jtable,Jfreechart,Windowbuilder,我正在使用swing和jfreechart在eclipse中制作一个应用程序,我有以下问题: 正如你在截图中所看到的,我有一个带有几个组件的框架。问题在于JTable,无论我是否调整窗口大小,它总是具有相同的大小。我希望表格能够像其他组件一样调整大小,比如右边的ChartPanel,但我不知道怎么做。contentPane有一个带有三个面板的边框布局: JTable的滚动窗格(西) 图表面板(中间) 按钮面板(南) JTable创建的代码如下: private JTable getTask
- JTable的滚动窗格(西)
- 图表面板(中间)
- 按钮面板(南)
private JTable getTasksTable() {
if (tasksTable == null) {
tasksTable = new JTable(new DefaultTableModel(new Object[] { "ID", "Duration", "Due-Date" }, 0) {
private static final long serialVersionUID = 1L;
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
});
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
for (int i = 0; i < tasksTable.getColumnModel().getColumnCount(); i++) {
tasksTable.getColumnModel().getColumn(i).setCellRenderer(centerRenderer);
}
tasksTable.getTableHeader().setDefaultRenderer(centerRenderer);
tasksTable.getTableHeader().setBorder(new LineBorder(new Color(0, 0, 0)));
tasksTable.setBorder(new LineBorder(new Color(0, 0, 0)));
tasksTable.setFillsViewportHeight(true);
}
return tasksTable;
}
private JTable getTasksTable(){
if(tasksTable==null){
tasksTable=新的JTable(新的DefaultTableModel(新对象[]{“ID”、“持续时间”、“到期日”},0){
私有静态最终长serialVersionUID=1L;
@凌驾
公共布尔值可编辑(int行,int列){
返回false;
}
});
DefaultTableCellRenderer centerRenderer=新的DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
对于(int i=0;i
JTable的滚动窗格(西)、ChartPanel(中)、按钮面板(南)
边界布局的工作方式是:
GridBagLayout
的面板。然后,GridBagLayout
将按照每个组件的首选大小分配空间。然后,可以为每个组件指定weightx
约束,以指定随着帧的增加,每个组件的额外空间百分比
阅读上Swing教程的部分,了解更多关于约束条件和工作示例的信息,以帮助您入门。尝试使用
GridLayout
或BoxLayout
将表格和图表放在CENTER
中。我已经尝试了这两种方法,它们的工作效果比以前更好,但问题是表格无法正常工作调整大小。此外,当我最大化窗口时,表格面板中有一个空白,我希望表格适合整个面板。您可以在层次结构中有一个嵌套的JPanel
,其默认值为FlowLayout
;您的片段显示表,但不显示封闭布局;请你的问题包括一个显示你修改过的方法。我唯一的流程布局是在面板上的按钮。没有了。JTable在一个JScrollPane中,我不能更改它的布局。“我不能更改它的布局。”好吧,不管怎样。你可以发布一个MCVE。那样做。