如何在 JScrollPane 中删除 JTable 顶部的 A



为什么表格顶部有一个A?

我在JScrollPane中放置了一个JTable以使其可滚动。我需要放置一些方法吗?我没有放置字母A,所以我无法跟踪。

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.BoxLayout;
import javax.swing.JTable;
import javax.swing.border.LineBorder;
import java.awt.Color;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
public class Rawr {
    private JFrame frame;
    private JScrollPane scrollPane;
    private JTable table;
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Rawr window = new Rawr();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    /**
     * Create the application.
     */
    public Rawr() {
        initialize();
    }
    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        frame.getContentPane().add(panel, BorderLayout.CENTER);
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        scrollPane = new JScrollPane();
        scrollPane.setToolTipText("");
        scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        panel.add(scrollPane);
        table = new JTable(100, 1);
        table.setBorder(new LineBorder(new Color(0, 0, 0)));
        scrollPane.setViewportView(table);
    }
}

如何删除它?谢谢!

使用以下方法显式设置列名:

String[] colNames = new String[]{"Your Column Name"};
DefaultTableModel defaultTableModel = new DefaultTableModel(colNames, 100);
table = new JTable(defaultTableModel);

如果使用new JTable(100, 1)创建一个表,您将看到AB等列标题,因为构造函数javadoc说:

使用 DefaultTableModel 构造具有空单元格numRowsnumColumnsJTable

由于JTable构造函数没有任何关于列标题的信息。它只能创建一个不知道任何列标题名称的DefaultTableModelDefaultTableModel扩展了AbstractTableModelAbstractTableModel.getColumnName()的javadoc说

使用电子表格约定返回列的默认名称:A、B、C、...Z、AA、AB 等 如果找不到column,则返回空字符串。

在创建表后添加以下代码。

字符串[] 列 = 新字符串[]{"列名"}; ((DefaultTableModel(table.getModel(((.setColumnIdentifiers(columns(;

如何删除它?

JTable 旨在显示带有标题的数据,以描述列中的数据。

由于您只有一列数据,因此如果您不想要标头,请不要使用 JTable。相反,您可以使用 JList .

有关详细信息和示例,请阅读 Swing 教程中有关如何使用列表的部分。

最新更新