在java中设置JTable中行的高度

我一直在寻找能够增加JTable中行的高度的解决方案。 我一直在使用setRowHeight(int int)方法编译并运行OK,但没有增加row [s]。 当我使用行的getRowHeight(int)方法设置高度时,它会打印出我将行增加到的大小,所以我不确定是什么问题。 下面的代码粗略说明了我是如何解决它的。

我的类扩展了JFrame。

String[] columnNames = {"Column 1", "Column 2", "Column 1 3"}; JTable table = new JTable(new DefaultTableModel(columnNames, people.size())); DefaultTableModel model = (DefaultTableModel) table.getModel(); int count =1; for(Person p: people) { model.insertRow(count,(new Object[]{count, p.getName(), p.getAge()+"", p.getNationality})); count++; } table.setRowHeight(1, 15);//Try set height to 15 (I've tried higher) 

谁能告诉我哪里出错了? 我想将第1行的高度增加到15像素?

不确定将索引0处的第一行留空的意图是什么。 JTable行从索引0开始运行。最好是发布一个演示问题的完整示例(即SSCCE )。 与这个工作正常的简单示例相比:

在此处输入图像描述

 import javax.swing.*; import javax.swing.table.DefaultTableModel; public class DemoTable { private static void createAndShowGUI() { JFrame frame = new JFrame("DemoTable"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DefaultTableModel model = new DefaultTableModel(); model.setColumnIdentifiers(new Object[] { "Column 1", "Column 2", "Column 3" }); JTable table = new JTable(model); for (int count = 0; count < 3; count++){ model.insertRow(count, new Object[] { count, "name", "age"}); } table.setRowHeight(1, 30); frame.add(new JScrollPane(table)); frame.setLocationByPlatform(true); frame.pack(); frame.setVisible(true); } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } } 

您可以使用:

table.setRowHeight(int par1);

或者如果要为特定行设置行高,请使用:

table.setRowHeight(int par1, int par2);

你还可以添加一个tableModelListener?

 model.addTableModelListener(new TableModelListener() { @Override public void tableChanged(final TableModelEvent e) { EventQueue.invokeLater(new Runnable() { @Override public void run() { table.setRowHeight(e.getFirstRow(), 15); //replace 15 with your own height } }); } }); 

右键单击JFrame中的JTable,然后单击“属性”。 向下滚动并设置rowHeight值。

设置rowHeight值