没有标题的JTable

时间:2010-03-27 08:28:46

标签: java swing jtable

有人能告诉我如何创建没有表头的表吗?

我正在制作数独游戏,我想在Java中创建一个没有表头的表。有可能吗?

6 个答案:

答案 0 :(得分:29)

我认为您不希望您的Sudoku滚动,因此最简单的方法应该是将您的表放入JScrollPane,它负责显示标题:

alt text


另一种方法是打电话

table.setTableHeader(null);

答案 1 :(得分:4)

如果您对建议的方法有任何疑问,请尝试以下方法:

jTable.getTableHeader().setUI(null);

使用Java 8进行测试。

答案 2 :(得分:3)

所以诀窍似乎是首先使用DefaultTableModel构造函数设置头,但稍后再调用setTableHeader(null);

enter image description here

以下是一些演示代码:

package net.raysforge.visual.demo;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class JTableAndGBC {

    private String[] columnNames = {"Source", "Hit", "Last", "Ur_Diff"};
    private JTable table;
    private Object[][] data = {{"Swing Timer", 2.99, 5, 1.01},
        {"Swing Worker", 7.10, 5, 1.010}, {"TableModelListener", 25.05, 5, 1.01}};
    private DefaultTableModel model = new DefaultTableModel(data, columnNames);

    public JTableAndGBC() {
        JPanel panel = new JPanel(new GridBagLayout());
        table = new JTable(model);
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.weightx = 1.0;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        JScrollPane pane = new JScrollPane(table);
        table.setPreferredScrollableViewportSize(table.getPreferredSize());
        table.setTableHeader(null);
        panel.add(pane, gbc);
        JFrame frame = new JFrame();
        frame.add(panel, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String args[]) throws Exception {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new JTableAndGBC();
            }
        });
    }
}

答案 3 :(得分:1)

像我这样的假人:这样做:]

jTable.setTableHeader(null);

答案 4 :(得分:0)

Try These Steps

  

JtableProperties> TableHeader> CustomCode>空

答案 5 :(得分:0)

jTable.getTableHeader().setUI(null) 在(如果)L&F 改变后将不起作用。

对我有用的是重置滚动窗格的列标题的可见性(在我的情况下分配给变量 scrollPaneSummary)以这种方式包装 JTable:

scrollPaneSummary = new javax.swing.JScrollPane();
scrollPaneSummary.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPaneSummary.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPaneSummary.setViewportView(  summaryJtable  );
scrollPaneSummary.setColumnHeaderView( summaryJtable.getTableHeader());

// make JTable headers invisible
scrollPaneSummary.getColumnHeader().setVisible(false);
scrollPaneSummary.revalidate();