Java 不带头的JTable

Java 不带头的JTable,java,swing,jtable,Java,Swing,Jtable,有人能告诉我如何创建没有表头的表吗 我正在做数独游戏,我想用Java创建一个没有表头的表。有可能吗?我认为您不希望数独滚动,因此最简单的方法应该是而不是将您的表放入一个负责显示标题的: 另一种方法是打电话 table.setTableHeader(null); 因此,技巧似乎是首先使用DefaultTableModel构造函数设置一个头,然后调用setTableHeader(null) 下面是一些演示代码: package net.raysforge.visual.demo; impo

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


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

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


另一种方法是打电话

table.setTableHeader(null);

因此,技巧似乎是首先使用DefaultTableModel构造函数设置一个头,然后调用setTableHeader(null)

下面是一些演示代码:

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();
            }
        });
    }
}

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

jTable.getTableHeader().setUI(null);
这是用Java 8测试的。

JtableProperties>TableHeader>CustomCode>Null


像我这样的傻瓜:做这个:]

jTable.setTableHeader(null);
jTable.getTableHeader().setUI(null)在更改L&F后将不起作用

对我来说,有效的方法是重置scrollpane的列标题的可见性(在我的例子中,是分配给变量ScrollPanesSummary的),它以这种方式包装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();


  

不要添加列名。。。使用任何其他构造函数。。。还是违约?我希望你说的是JTable。@saurabh:3133 T在这里不欢迎讲话。我修复了你的帖子,但下次不要使用“any1”、“plz-thx”和几个“?”。我可以吃芝士汉堡吗?什么桌子?它也需要椅子吗?lol@SyntaxT3rr0r是3133t名称;)对我来说,这两种解决方案对标题都没有任何影响。我甚至尝试过
table.getTableHeader.setVisible(false)
,但是我仍然有一个空白的灰色点,在那里可以看到标题。我知道这是一个老帖子;API改变了吗,或者我遗漏了什么?看起来你遗漏了什么,我只是尝试了两种建议的方法,它们都有效。将TableHeader设置为不可见确实会留下一个灰色斑点,因为布局不会更改。如果你不能解决这个问题,可以用一个简短的例子问另一个问题来重现你的问题和结果的屏幕截图。