gpt4 book ai didi

java - JTable设置列大小问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:05 27 4
gpt4 key购买 nike

我在设置 JTable 的列宽时遇到了这个问题。

下面的代码工作正常:

TableColumn a =shipsAndOwnHitsTable.getColumnModel().getColumn(0);
a.setPreferredWidth(800);

它改变了第一列的宽度。

但是当放在 while 或 for 循环中时,什么也不会发生:

        int index = 0;
while (index < columnNum){
TableColumn a =shipsAndOwnHitsTable.getColumnModel().getColumn(index);
a.setPreferredWidth(800);
index+=1;
}

此代码不起作用,列大小没有任何变化,有人可以解释为什么吗?如果没有,有人可以告诉我如何将行宽和列宽设置为相同,即我希望表格中的所有单元格都是方形的,而不管表格大小(行和列)。?

谢谢

最佳答案

下面的代码工作正常。根据我的评论,请注意

  • setAutoResizeMode(JTable.AUTO_RESIZE_OFF) 被调用
  • 表格组件嵌入到 JScrollPane 中以允许任意大小

将它与您的代码进行比较,您可能很快就会发现问题。

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.TableColumn;

public class TableColumnSizeTest {

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

@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

// prepare table
JTable table = new JTable(new String[][] {
{ "Row 1 Col A", "Row 1 Col B" },
{ "Row 2 Col A", "Row 2 Col B" } },
new String[] { "ColA", "ColB" });

// add into scroll pane
f.getContentPane().add(new JScrollPane(table));

// turn off auto resize
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// set preferred column widths
int index = 0;
while (index < 2) {
TableColumn a = table.getColumnModel().getColumn(index);
a.setPreferredWidth(10);
index++;
}

f.pack();

f.setVisible(true);
}
});
}
}

关于java - JTable设置列大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5775602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com