java - 如何在 JTable 中使用我自己的列名显示 MS Access DB?

标签 java swing ms-access jtable jdbc-odbc

我正在尝试将一个表输入到 JTable,但不使用 Vector(),因为它采用我在 DB 中输入的列名称(短名称),现在我想更改列名称,但我不这样做不明白该怎么做。

JTable table = new JTable(data, columNames); 
/*
can use if both are Vectors, but I have to change columnNames with String[] columnNames     
*/

最佳答案

参见JTableHeader.setColumnModel(TableColumnModel columnModel)

例如

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumn;

public class TablePreferredSize {

    private String[] head = {"One", "Two", "Three", "Four", "Five", "Six"};
    private String[][] data = new String[25][6];
    private JTable table = new JTable(data, head);
    private DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
    private TableColumn column = new TableColumn();

    public TablePreferredSize() {
        table.setRowHeight(23);
        table.setIntercellSpacing(new Dimension(1, 1));
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        column = new TableColumn();
        column.setModelIndex(0);
        column.setHeaderValue("apple");
        columnModel.addColumn(column);
        column = new TableColumn();
        column.setModelIndex(1);
        column.setHeaderValue("banana");
        columnModel.addColumn(column);
        column = new TableColumn();
        column.setModelIndex(2);
        column.setHeaderValue("pear");
        columnModel.addColumn(column);
        column = new TableColumn();
        column.setModelIndex(3);
        column.setHeaderValue("cherry");
        columnModel.addColumn(column);
        column = new TableColumn();
        column.setModelIndex(4);
        column.setHeaderValue("orange");
        columnModel.addColumn(column);
        column = new TableColumn();
        column.setModelIndex(5);
        column.setHeaderValue("lemon");
        columnModel.addColumn(column);
        table.setColumnModel(columnModel);
        //table.setPreferredScrollableViewportSize(new Dimension(rowWidth, 12 * rowHeight));
        JScrollPane scrollPane = new JScrollPane(table);
        JFrame frame = new JFrame("Table PreferredSize");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(scrollPane);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                TablePreferredSize t = new TablePreferredSize();
            }
        });
    }
}

关于java - 如何在 JTable 中使用我自己的列名显示 MS Access DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367287/

相关文章:

java - 基于 if/else 语句和 Action 监听器在 Java 中绘制形状

java - MongoTemplate条件查询翻译似乎不正确

java - JPanel 子类中的火灾 Action

java.lang.错误: Unresolved compilation error occuring in JSP

java - GridBagConstraints 填充垂直和水平

sql - 在 Access 中选择和计数行的最佳方法

java - JDBC - 尝试插入值时出现 NullPointerException

string - 如何评估 Access 查询中另一个字段中包含的字段名称?

java - Android 设备充当服务器

java.net.MalformedURLException : unknown protocol: localhost at controller. RestController.addService(RestController.java:62)