new JScrollPane(new JTable())
怎么会呢?

解决方案 »

  1.   

    当然会了,代码如下,可以运行看看结果
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;class Frame1 extends JFrame{
    JButton jB1 = new JButton("aaaaaaaaaaaa");
    JButton jB2 = new JButton("bbbbbbbbbbbb");
    JButton jB3 = new JButton("cccccccccccc");
    JButton jB4 = new JButton("ddddddddddddd");
    JButton jB5 = new JButton("eeeeeeeeeeeee");
    JButton jB6 = new JButton("eeeeeeeeeeeee");

    JPanel jPanel = new JPanel();
    JPanel jPanel2 = new JPanel();
    JPanel jPanel3 = new JPanel();

    JRadioButton b1 = new JRadioButton("Http");
    JRadioButton b2 = new JRadioButton("Tcp");

    ButtonGroup group = new ButtonGroup();

    Object[] data = new Object[7];    DefaultTableModel defaulttablemodel = new DefaultTableModel();
        JTable jtable = new JTable(defaulttablemodel);
        
        JScrollPane js = new JScrollPane(jtable);
       
    public Frame1(){
    // setIconImage(new ImageIcon("1.jpg").getImage());
    getContentPane().setLayout(new FlowLayout());

    for(int column = 0; column < 7; column++){
                defaulttablemodel.addColumn("Column " + column);
            }
            for(int row = 0; row < 10; row++) {
                for(int column = 0; column < 7; column++) {
                    data[column] = "Cell " + row + "," + column;
                }
                defaulttablemodel.addRow(data);
            }

        
      jtable.setAutoResizeMode(0);
    jPanel2.add(js);
        
    group.add(b1);
    group.add(b2);
    jPanel3.add(b1);
    jPanel3.add(b2); this.getContentPane().add(jPanel);
    this.getContentPane().add(jPanel2);
    this.getContentPane().add(jPanel3);


    jPanel2.setBorder(BorderFactory.createTitledBorder(
    BorderFactory.createEtchedBorder(),"显示"));
    jPanel3.setBorder(BorderFactory.createTitledBorder(
    BorderFactory.createEtchedBorder(),"设定"));

    jPanel.add(jB1);
    jPanel.add(jB2);
    jPanel.add(jB3);
    jPanel.add(jB4);
    jPanel.add(jB5);
        
    setSize(800,600);
    // pack();
    show();
    }
    }
    public class MyFrame{
    public static void main(String args[]){
    new Frame1();
    }
    }
      

  2.   

    我也碰到过这样的问题,原因是JTable中的数据不够支撑住JSrollPane, 如果JTable中有那么几十条就不会出现这样的问题。
    反正怎不能用程序来判断数据的行数然后再设置JTable的大小吧。
      

  3.   

    你的程序我Try了,没有问题啊!
    JTable jtable = new JTable(defaulttablemodel);
        
    JScrollPane js = new JScrollPane(jtable);
      没有问题!
      

  4.   

    改变JScrollPane的大小js.setPreferredSize(new Dimension(500,160));
      

  5.   

    我也遇到这个问题了,行数多看不出来,一旦少就不行了,还有,如果我得结果集列很多得时候,它给我密密麻麻的布置,横向就没有给我自动加上滚动条,不知道为什么
    table1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
                  scrollpane1=new JScrollPane(table1,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    这样不行阿
      

  6.   

    问题解决
    js.setPreferredSize(new Dimension(500,160));
    好用
      

  7.   

    zhouhouqu(潇湘夜雨) 
    你加上这句话
    jtable.setAutoResizeMode(0);
    你的问题就解决了。