Java 修改JTable以适应屏幕

Java 修改JTable以适应屏幕,java,swing,jtable,layout-manager,Java,Swing,Jtable,Layout Manager,我创建了一个应用程序,只是为了锻炼,其中有一个JTable,用来显示来自我数据库的数据 我的问题是,在我的屏幕上,表格显示在面板的一半。我尝试了所有方法来扩展这些列,但没有成功。有人能告诉我如何修改表格吗 以下是创建表的代码: public void createTable() { JTable table = new JTable(); DefaultTableModel tableModel = new DefaultTableModel(new Object[][]

我创建了一个应用程序,只是为了锻炼,其中有一个
JTable
,用来显示来自我数据库的数据

我的问题是,在我的屏幕上,表格显示在面板的一半。我尝试了所有方法来扩展这些列,但没有成功。有人能告诉我如何修改表格吗

以下是创建表的代码:

    public void createTable() {
    JTable table = new JTable();
    DefaultTableModel tableModel = new DefaultTableModel(new Object[][]{},new String[]{"To do","Date added"});
    table.setSize(450, 600);
    table.setModel(tableModel);
    for(int i = 0; i < model.getId().size(); i++) {
        tableModel.addRow(new Object[]{model.getItem().get(i), model.getDate().get(i)});
    }
    add(table.getTableHeader());
    add(table);
}
public void createTable(){
JTable table=新的JTable();
DefaultTableModel tableModel=新的DefaultTableModel(新对象[][]{},新字符串[]{“To do”,“Date added”});
表.设置尺寸(450600);
table.setModel(tableModel);
对于(int i=0;i
下面是它现在的样子:

我还想询问table.getTableHeader()的情况,因为如果我不添加它,它不会显示,因为它是表的一部分。。这正常吗?

  • JPanel
    在API中实现了
    FlowLayout
    ,然后您的
    JPanel
    使用您的逻辑正确地分层
    JTable组件
    (添加
    JTableHeader
    ,添加
    JTable

  • 将其更改为
    BorderLayout
    ,并将
    JTableHeader
    置于
    北部
    /
    南部
    JTable
    置于
    中心

  • 使用
    JScrollPane
    查看
    JTables
    ,其他一切都在使用
    LayoutManager
    和计算
    PreferredSize
    非常丑陋的方式


1)要更快地获得更好的帮助,请发布一个。2) “getTableHeader()…未显示”将表放在滚动窗格中。3) “我已经尝试了所有方法来扩展列”很明显,你没有,因为它确实有效,但到目前为止你失败了。“JTable在我的屏幕上显示在一半的JPanel中”那么有趣的不是你创建JTable的方式(这是经典的),而是你如何创建JPanel。特别是您使用的布局管理器。显然,你并不想适应屏幕,而是想适应面板……安德鲁·汤普森(Andrew Thompson)的所有三点都是最重要的,在
JPanel
中发布一个
SSCCE
,简短、可运行、可编译,大约
JFrame
JTable
,变通方法不是什么,什么都不是special@mKorbel只是为了作弊,我在编辑中添加了第三点。;)“你能给我举个例子吗?”是的,我能。我可能会考虑寻找一个或写一个新的例子。但首先我想看看你的SSCCE。默认的
FlowLayout
可能是罪魁祸首。