web-dev-qa-db-ja.com

ヘッダーのないJTable

テーブルヘッダーなしでテーブルを作成する方法を教えてもらえますか?

数独パズルを作っていますが、Javaでテーブルヘッダーのないテーブルを作成したいと思います。出来ますか?

21
saurabh

数独をスクロールさせたくないと思うので、notでテーブルを JScrollPane 、ヘッダーの表示を担当します:

alt text


他の方法は呼び出すことです

table.setTableHeader(null);
32
Peter Lang

提案された方法に問題がある場合は、次のことを試してください。

jTable.getTableHeader().setUI(null);

これはJava 8でテストされます。

6
BudwiseЯ

したがって、トリックは、最初に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
Ray Hulha

私のようなダミー:これを行う:]

jTable.setTableHeader(null);
1
MoolsBytheway

これらの手順を試してください

JtableProperties> TableHeader> CustomCode> Null

0
tharinda