Подтвердить что ты не робот

JTable без заголовка

Может ли кто-нибудь сказать мне, как создать таблицу без заголовка таблицы?

Я делаю головоломку Sudoku, и я хочу создать таблицу без заголовка таблицы в Java. Возможно ли это?

4b9b3361

Ответ 1

Я не думаю, что вы хотите, чтобы ваша судоку прокручивалась, поэтому самый простой способ - не помещать вашу таблицу в JScrollPane, который отвечает за отображение заголовка:

alt text


Другой способ - позвонить

table.setTableHeader(null);

Ответ 2

У каждого, у кого есть проблемы с предложенными методами, попробуйте следующее:

jTable.getTableHeader().setUI(null);

Это проверено на Java 8.

Ответ 3

Итак, кажется, что трюк заключается в том, чтобы сначала установить заголовок с помощью конструктора DefaultTableModel, а затем вызвать callTableHeader (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();
            }
        });
    }
}

Ответ 4

Манекены, как я: сделать это:]

jTable.setTableHeader(null);