可以运行成功看到表格
当要显示出数据库数据时,单击Button后
总是要托动滚动轴
或者说是改变一下容器的大小
才可以显示出数据
不晓得为什么?

解决方案 »

  1.   

    重新设置TableModel
    table.setModel(model);
      

  2.   

    after you update the table data, you should call fireTableChanged method in the table model
      

  3.   

    不可以,我把程序传上来,你们帮我看看吧.怎么改?--------------------------------------------------------------------------
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.sql.*;
    import java.net.*;
    class Mywin extends JFrame implements ActionListener
    {
    JButton button;
    Container con;
    Lianxi lianxi;
    Mywin()
    {

    setBounds(100,100,600,50);
    con=getContentPane();
    button=new JButton("打开天窗说亮话");
    lianxi=new Lianxi(this,"我是对话框",false);
    button.addActionListener(this);
    con.add(button);
    addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    setVisible(false);
    }
    });
    setVisible(true);
    validate();
    }
    public void actionPerformed(ActionEvent e)
    {
    if(e.getSource()==button)
    {
    lianxi.setVisible(true);
    }
    }
    }
    class Lianxi extends Dialog implements ActionListener
    {
    JTable table;
    Object a[][],columnName[]={"学号","姓名","姓别","专业","年级","出生"};

    JProgressBar pbar;
    JButton button;
    JScrollPane scrollPane;
    Lianxi(JFrame f,String s,boolean b)
    {
    super(f,s,b);
    setBounds(100,150,600,200);
    setVisible(false);
    a=new Object[20][6];//怎么动态的增加数组的大小?!!

    table=new JTable(a,columnName);
    pbar=new JProgressBar(JProgressBar.VERTICAL,0,20);
    pbar.setStringPainted(true);
    scrollPane=new JScrollPane(table);
    button=new JButton("显示所有学生的信息");

    add(scrollPane,BorderLayout.CENTER);
    add(button,BorderLayout.SOUTH);
    add(pbar,BorderLayout.WEST);
    button.addActionListener(this);
    addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
    {
    setVisible(false);
    }
    });
    validate();
    }
    public void actionPerformed(ActionEvent e)
    {
    if(e.getSource()==button)
    {
    try
    {
    InquestAll();
    }
    catch (SQLException ee)
    {
    }
    }
    }
    public void InquestAll() throws SQLException
    {
    String no,name,sex,major,grade,birth;
    int i=0;
    try
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch (ClassNotFoundException e)
    {
    }
    Connection cont=DriverManager.getConnection("Jdbc:Odbc:sunred","","");
    Statement stmt=cont.createStatement();
    ResultSet set=stmt.executeQuery("select * from student");
    while(set.next())
    {
    no=set.getString("学号");
    name=set.getString("姓名");
    sex=set.getString("姓别");
    major=set.getString("专业");
    grade=set.getString("年级");
    birth=set.getString("出生");
    a[i][0]=no;
    a[i][1]=name;
    a[i][2]=sex;
    a[i][3]=major;
    a[i][4]=grade;
    a[i][5]=birth;
    i++;
    pbar.setValue(i);
    pbar.setString("现在显示了"+i+"条记录");
    }
    /*DefaultTableModel dtm = new DefaultTableModel(); 
    dtm.fireTableDataChanged();// 刷新JTable数据
    table.setModel(dtm);
    dtm.fireTableStructureChanged();// JTable刷新结构

               table.fireTableCellUpdated(); table.show();
    validate();
    set.refrash();*/ set.close();
    cont.close();
    }
    }
    public class Mydialog
    {
    public static void main(String args[])
    {
    Mywin mywin=new Mywin();
    JTable table;
    }
    }
      

  4.   

    上面的的
    倒数第三行的JTable table;
    是多余的你们直接删了就行!!
    数据库回复的时候没有办法以附件的形势添加,
    你们就自己给建一个吧
    我这里先行谢过了,
    等着你们胜利的消息.
    我这边也得忙着-----先
      

  5.   

    多谢!!
    不过是
    repaint