Java - table - 改变表格格式

标签 java swing jtable tablecolumn

如何在 java 中更改表格格式?

现在,我有左表,但我希望我的表看起来像右表。

image

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

public class Farby extends JTable {
    public Farby(String[][] data, String[] fields) {
        super(data, fields);
    }

    @Override
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
        Component c = super.prepareRenderer(renderer, row, column);
        c.setBackground(row % 2 == 0 ? getBackground() : Color.getHSBColor(250, 250, 128));
        return c;
    }

    public static void main(String[] args) {
        String[] fields = {"So long String", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
        String[][] a2 = new String[12][12];
        for (int i = 0; i < a2.length; i++) {
            for (int j = 0; j < a2[0].length; j++) {
                a2[i][j] = i + j + "";
            }
        }
        JFrame frame = new JFrame("Help");
        Farby table = new Farby(a2, fields);
        JScrollPane pane = new JScrollPane(table);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(pane, BorderLayout.CENTER);
    //    frame.add(pane);

        frame.setSize(800, 400);
    //    frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

最佳答案

你需要类似的东西

 table.getColumnModel().getColumn(1).setPreferredWidth(15);

这取决于您是否希望用户能够更改宽度。您可以在循环中调用上面的代码来设置除第一个以外的所有内容。

关于Java - table - 改变表格格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976128/

相关文章:

java - 模式匹配 - 正则表达式

java.lang.ClassNotFoundException : con. mysql.jdbc.Driver

java - 将 JTable 限制为 100 行

java - 在 JFreeChart 中,如何将域轴标签放置在图例旁边?

java - 将java表导出到excel时出现问题

java - 同一实体上的多对多关系,无需额外的连接表列

java - 空 transient 属性

java - 覆盖 Swing 中的列表选择

java - 更新 SwingWorker 中的 JTable

java - ScrollPane 内的 JTable 仅在调整大小后显示