import javax.swing.*;
import java.util.*;
import javax.swing.table.*;
import java.awt.*;public class SetTableWidth extends JFrame
{
public SetTableWidth()
{
Container conta=this.getContentPane();
JScrollPane jsp=new JScrollPane();
JTable jt=new JTable(4,4);
jsp.getViewport().setLayout(new BorderLayout());
jsp.getViewport().add(jt,BorderLayout.CENTER);
conta.setLayout(new BorderLayout());
conta.add(jsp,BorderLayout.CENTER);
Enumeration columns = jt.getColumnModel().getColumns();
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
while (columns.hasMoreElements())
{
TableColumn tc = (TableColumn)columns.nextElement();
tc.setPreferredWidth(50);
tc.setMinWidth(50);
tc.setMaxWidth(50);
}
this.setSize(400,500);
this.setVisible(true);
}
public static void main(String args[])
{
new SetTableWidth();
}
}
import java.util.*;
import javax.swing.table.*;
import java.awt.*;public class SetTableWidth extends JFrame
{
public SetTableWidth()
{
Container conta=this.getContentPane();
JScrollPane jsp=new JScrollPane();
JTable jt=new JTable(4,4);
jsp.getViewport().setLayout(new BorderLayout());
jsp.getViewport().add(jt,BorderLayout.CENTER);
conta.setLayout(new BorderLayout());
conta.add(jsp,BorderLayout.CENTER);
Enumeration columns = jt.getColumnModel().getColumns();
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
while (columns.hasMoreElements())
{
TableColumn tc = (TableColumn)columns.nextElement();
tc.setPreferredWidth(50);
tc.setMinWidth(50);
tc.setMaxWidth(50);
}
this.setSize(400,500);
this.setVisible(true);
}
public static void main(String args[])
{
new SetTableWidth();
}
}
int[] widths = {95,105,95,125,125,110,125};//各列列宽设定
for(i=0;i<widths1.length;i++) {
TableColumn tc = tcm.getColumn(i);
tc.setPreferredWidth(widths[i]);
}
上面例子是共有7列,各列长度设置,其实在真实显示的时候,是按widths里面各数据比例分配列宽的。