swing jtable表头设置

  • Post author:
  • Post category:其他



1. 不放在 JScrollPane 上, 但是需要给表加个边框.

Java代码

复制代码


收藏代码

  1. table.setBorder(BorderFactory.createEtchedBorder());
  2. panel.add(table);
table.setBorder(BorderFactory.createEtchedBorder());

panel.add(table);



2. 放在 JScrollPane 上, 但是把表头隐藏..

Java代码

复制代码


收藏代码

  1. table.getTableHeader().setVisible(



    false



    );
  2. tableScrollPane.setViewportView(table);
  3. panel.add(tableScrollPane);
table.getTableHeader().setVisible(false);

tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);




缺点:


在本来表头的位置出现一片空白, 难看. 改进: 如果在前面将表头内容全部设为 “”, 就可以去掉这片空白, 效果和 3 一样.(


http://www.my400800.cn


)

Java代码

复制代码


收藏代码

  1. tableHeader =



    new



    String[]{



    “”


    ,


    “”


    ,


    “”


    ,


    “”


    ,


    “”


    ,


    “”


    ,


    “”


    ,


    “”


    };
  2. table =



    new



    JTable(tableData, tableHeader);
  3. table.getTableHeader().setVisible(



    false



    );
  4. tableScrollPane.setViewportView(table);
  5. panel.add(tableScrollPane);
tableHeader = new String[]{"", "", "", "", "", "", "",""};
table = new JTable(tableData, tableHeader);
table.getTableHeader().setVisible(false);

tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);


3. 为表头设置一个 CellRenderer, 这个 CellRenderer 的预选高度为 0. .

Java代码

复制代码


收藏代码

  1. jtb_right_dataList.getTableHeader().setVisible(



    false



    );
  2. DefaultTableCellRenderer renderer =



    new



    DefaultTableCellRenderer();
  3. renderer.setPreferredSize(



    new



    Dimension(


    0


    ,


    0


    ));
  4. jtb_right_dataList.getTableHeader().setDefaultRenderer(renderer);
         
jtb_right_dataList.getTableHeader().setVisible(false);
            DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
            renderer.setPreferredSize(new Dimension(0, 0));
            jtb_right_dataList.getTableHeader().setDefaultRenderer(renderer);

这是目前我正在用的, 正是我想要的效果.