如何防止调整 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() 方法 −
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例
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 −
输出结果
广告