我用下面的语句创建了一个JTable,效果如图(附件里的)
//创建一个表格组件
JTable table = new JTable(vRowData,vColumnNames);
//设置此表格的首选大小
table.setPreferredScrollableViewportSize(new Dimension(1000,400));

//在此窗体中增加滚动条
JScrollPane sp = new JScrollPane(table);
f.getContentPane().add(sp,BorderLayout.CENTER);
//table.setFillsViewportHeight(true);

//设置水平和垂直滚动条按需出现
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

//在此窗体中增加按钮
JButton bSendMail = new JButton("发送");
f.getContentPane().add(bSendMail,BorderLayout.SOUTH);

f.pack();有下面几个问题:
1、调整某列的宽度后整个JTable的宽度不变,导致后面的信息显示不全。
2、滚动条不出现
3、在打开这个JTable时,只能显示表格里的内容,不能显示按钮,要将整个窗体的框拉下来才能显示出“发送”按钮

解决方案 »

  1.   

    jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
      

  2.   

    谢谢楼上的,老是你在帮我,我有一篇提问的有100分的点数,还没散,你去回复一下,我只能在那多给点分。另外那个“发送”按钮,在打开这个JTable时,只能显示表格里的内容,不能显示按钮,要将窗体的框拉下来才能显示出“发送”按钮,请问这个问题如何解决
      

  3.   

    不知道能否以最大化的方式打开一个JFrame
      

  4.   

    按钮在我这边可以正常显示,估计是你那边的数据太多了,最后一个问题可以像下面这样写:
    f.setExtendedState(JFrame.MAXIMIZED_BOTH);
      

  5.   

    去掉table.setPreferredScrollableViewportSize(new Dimension(1000,400));这句看看能不能显示出按钮
      

  6.   

    去掉table.setPreferredScrollableViewportSize(new Dimension(1000,400));这句能显示出按钮
    但是table的显示区域也变小了,由于行列比较多,我就保留了上一句,默认了最大化打开。
    有没有方法让JFrame不能改变窗体大小,因为如果改了窗体的大小,就有可能导致table的显示不全,有些行列看不到。