borderLayout = new BorderLayout();
     frame.setLayout(borderLayout);
     tableManager = new TableManager(headNames, tableContents);
     table = new JTable(tableManager.getDefaultTableModel());    
     TableBase.FitWidth(table);
     table.addMouseListener(new RunMouseAction());
     scrollPane = new JScrollPane(table);
     frame.add(scrollPane, BorderLayout.CENTER);
     frame.add(infoPanel, BorderLayout.SOUTH);
     frame.setVisible(true);
                frame.pack();
其中,测试的时候table与scrollPane的宽度都是0
用pack()方法时,将窗口宽度设为了infoPanel的宽度
可table的显示宽度要大于infoPanel的宽度,我想把JFrame的宽度设为刚好容纳scrollPane的宽度 
有办法吗?

解决方案 »

  1.   

    设置该 scrollPane 的 preferredSize
      

  2.   

    scrollPane中table的实际宽度是不确定的,根据其内容的大小动态改变宽度 
    怎么设置preferedSize?
      

  3.   

    用setBounds设定Frame的位置和大小
      

  4.   

    我的意思是JFrame取其中最宽组件的宽度做宽度,而其中每个组件的宽度都可能是一个随着软件的执行而变化的值
      

  5.   


    table 的宽度动态
    但是 scrollPane 的宽度可以固定啊
    长出来的部分就由滚动条来控制
      

  6.   

    我就是希望scrollPane的宽度是表格的宽度,或者说是使水平滚动条消失并且水平方向不损失数据