禁用自动调整大小以使 JTable 在 Java 中可水平滚动
java 8object oriented programmingprogramming更新于 2025/9/14 7:08:17
要禁用自动调整大小,您需要使用 setAutoResizeMode() 方法。之后,将表设置为 AUTO_RESIZE_OFF。
假设以下是我们的表 −
String[][] rec = {
{ "1", "Virat", "840" },
{ "2", "David", "835" },
{ "3", "Shikhar", "656" },
{ &"4", &"Steve", &"530" },
{ &"5", &"Kane", &"515" },
{ &"6", &"Eion", &"509" },
{ &"7", &"AB de Villiers", &"498" },
{ &"8", &"Quinton", &"470" },
{ &"9", &"Glenn", &"410" },
{ &";10", &";Tom", &";360" },
{ &";11", &";Johnny", &";320" },
{ &";12", &";Shreyas", &";280" },
};
String[] header = { &";S.NO", &";Player", &";Runs" }; JTable table = new JTable(rec, header);
现在,禁用自动调整大小 −
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
以下是禁用自动调整大小以使 JTabel 可水平滚动的示例 −
示例
package my;
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
public class SwingDemo {
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(), "Total Runs", TitledBorder.CENTER, TitledBorder.TOP));
String[][] rec = {
{ "1", "Virat", "840" },
{ "2", "David", "835" },
{ "3", "Shikhar", "656" },
{ "4", "Steve", "530" },
{ "5", "Kane", "515" },
{ "6", "Eion", "509" },
{ "7", "AB de Villiers", "498" },
{ "8", "Quinton", "470" },
{ "9", "Glenn", "410" },
{ "10", "Tom", "360" },
{ "11", "Johnny", "320" },
{ "12", "Shreyas", "280" },
};
String[] header = { "S.NO", "Player", "Runs" }; JTable table = new JTable(rec, header);
table.setShowGrid(false);
table.setShowHorizontalLines(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setGridColor(Color.orange);
panel.add(new JScrollPane(table));
frame.add(panel);
frame.setSize(550, 400);
frame.setVisible(true);
}
}
这将产生以下输出。此处自动调整大小已关闭 −

现在,您可以拖动并调整表格列的大小 −


