我找不到向表中添加行标题的解决方案。使用水平标题一切正常,但是如何将垂直标题(行标题)设置为左侧?以下是我目前拥有的代码:
import javax.swing.*;
import java.awt.*;
public class Table{
public static void main(String[] args) {
int n = 5;
int m = 5;
String[][] arrayList = new String[n][m];
String[] horizontalHeader = new String[n];
String[] verticalHeader = new String[n];
for (int i = 0; i < n; i++) {
horizontalHeader[i] = "column" + i;
verticalHeader[i] = "row" + i;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arrayList[i][j] = "value";
}
}
JFrame frame = new JFrame("Table");
JTable table = new JTable(arrayList, horizontalHeader);
JScrollPane scrollPane = new JScrollPane(table);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
1条答案
按热度按时间ig9co6j11#
创建一个组件并将该组件添加到
JScrollPane
使用setRowHeaderView(...)
方法。所以你可以用
JList
作为包含每行值的组件。您还需要一个自定义的呈现器,以便行标题像列标题一样呈现。
下面是一个基本示例,每行仅使用一个数字:
如果您希望行标题中有不同的值,那么可以使用您自己的包含要显示的值的listmodel,而不是tablelistmodel。
如果可以从tablemodel中动态添加/删除数据行,那么还需要逻辑来添加/删除listmodel中的行。