如果有DateSet直接修改对应中的栏宽,否则建立一个栏位表。

解决方案 »

  1.   

    <pre>
    import java.awt.*; 
    import java.awt.event.*; 
    import java.util.*;
    import java.text.*;
    import javax.swing.*; 
    import javax.swing.table.*;public class Test extends JFrame
    {     public Test(String s)
        {
    super(s);
    init();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setSize(400, 300);
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            setLocation(screenSize.width / 2 - 200,
                        screenSize.height / 2 - 150);
            setVisible(true);
        }    String[][] data = 
        {
    {"1", "2", "3"},
    {"4", "5", "6"},
        };    String[] header =
        {
    "c1", "c2", "c3"
        };    JTextField tfWidth = new JTextField(10);
        JButton button = new JButton("Change");
        JTable table = new JTable(data, header);
        JScrollPane scroller = new JScrollPane(table);
            private void init()
        {
    JPanel top = new JPanel();
    top.add(tfWidth);
    top.add(button);
    getContentPane().add(top, BorderLayout.NORTH);
    getContentPane().add(scroller);
    // table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    // table.getTableHeader().setResizingAllowed(false);
    button.addActionListener(
        new ActionListener()
        {
    public void actionPerformed(ActionEvent e)
    {
        try
        {
    int width = Integer.parseInt(tfWidth.getText());
    TableColumn column = table.getColumn("c2");
    column.setPreferredWidth(width);
    table.revalidate();
    table.repaint();
        }
        catch (Exception ex)
        {
    ex.printStackTrace();
        }
    }
        }
        );
        }    public static void main(String args[]) 
        { 
    // try
    {
        Test t = new Test("Table Test");
    }
    // catch (Exception e)
    {
    //     e.printStackTrace();
    }
        } 
    } </pre>以上程序在 jdk1.3.1 下通过.