如何防止調整 JTable 中的列大小
要防止調整列大小,可使用 setResizingAllowed() 方法。在此處,我們對於表頭將把 setResizingAllowed() 設定為 false,以禁止調整列頭中的列大小 −
table.getTableHeader().setResizingAllowed(false);
我們先來看一個示例,其中我們可以透過調整表格列頭來輕鬆調整表格中的列大小 −
示例
package my;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class SwingDemo {
public static void main(String[] argv) throws Exception {
DefaultTableModel tableModel = new DefaultTableModel();
JTable table = new JTable(tableModel);
tableModel.addColumn("Language/ Technology");
tableModel.addColumn("Text Tutorial");
tableModel.addColumn("Video Tutorial");
tableModel.addColumn("Views");
tableModel.addRow(new Object[] { "F#", "Yes", "No", "7890"});
tableModel.addRow(new Object[] { "Blockchain", "Yes", "No", "10600"});
tableModel.addRow(new Object[] { "SharePoint", "Yes", "Yes", "4900"});
tableModel.addRow(new Object[] { "AWS", "No", "Yes", "8900"});
tableModel.addRow(new Object[] { "Python", "Yes", "No", "6789"});
tableModel.addRow(new Object[] { "Scala", "Yes", "No", "3400"});
tableModel.addRow(new Object[] { "Swift", "No", "Yes", "9676"});
tableModel.addRow(new Object[] { "C#", "Yes", "Yes", "1300"});
tableModel.addRow(new Object[] { "NodeJS", "No", "Yes", "2350"});
tableModel.addRow(new Object[] { "MVC", "Yes", "No", "1500"});
tableModel.addRow(new Object[] { "ASP.NET", "Yes", "Yes", "3400"});
tableModel.addRow(new Object[] { "Java", "Yes", "No", "9686"});
tableModel.addRow(new Object[] { "jQuery", "Yes", "Yes", "4500"});
table.setBackground(Color.white);
table.setForeground(Color.black);
Font font = new Font("Verdana", Font.PLAIN, 12);
table.setFont(font);
JFrame frame = new JFrame();
frame.setSize(600, 400);
frame.add(new JScrollPane(table));
frame.setVisible(true);
}
}結果如下,表明我們成功調整了列“文字教程”,使其與其他列具有不同的大小。我們調整了列頭 −
輸出結果

以下是一個示例,其中我們阻止使用者調整列的大小。我們將 FALSE 設定為 setResizingAllowed() 方法 −
示例
package my;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class SwingDemo {
public static void main(String[] argv) throws Exception {
DefaultTableModel tableModel = new DefaultTableModel();
JTable table = new JTable(tableModel);
tableModel.addColumn("Language/ Technology");
tableModel.addColumn("Text Tutorial");
tableModel.addColumn("Video Tutorial");
tableModel.addColumn("Views");
table.getTableHeader().setResizingAllowed(false);
tableModel.addRow(new Object[] { "F#", "Yes", "No", "7890"});
tableModel.addRow(new Object[] { "Blockchain", "Yes", "No", "10600"});
tableModel.addRow(new Object[] { "SharePoint", "Yes", "Yes", "4900"});
tableModel.addRow(new Object[] { "AWS", "No", "Yes", "8900"});
tableModel.addRow(new Object[] { "Python", "Yes", "No", "6789"});
tableModel.addRow(new Object[] { "Scala", "Yes", "No", "3400"});
tableModel.addRow(new Object[] { "Swift", "No", "Yes", "9676"});
tableModel.addRow(new Object[] { "C#", "Yes", "Yes", "1300"});
tableModel.addRow(new Object[] { "NodeJS", "No", "Yes", "2350"});
tableModel.addRow(new Object[] { "MVC", "Yes", "No", "1500"});
tableModel.addRow(new Object[] { "ASP.NET", "Yes", "Yes", "3400"});
tableModel.addRow(new Object[] { "Java", "Yes", "No", "9686"});
tableModel.addRow(new Object[] { "jQuery", "Yes", "Yes", "4500"});
table.setBackground(Color.white);
table.setForeground(Color.black);
Font font = new Font("Verdana", Font.PLAIN, 12);
table.setFont(font);
JFrame frame = new JFrame();
frame.setSize(600, 400);
frame.add(new JScrollPane(table));
frame.setVisible(true);
}
}結果如下,顯示所有列的預設大小,我們無法調整它們,因為我們已將表大小調整為 FALSE −
輸出結果

廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP