从数据库中读出数据放到JTable中,可以运行成功。不过是有点问题 可以运行成功看到表格当要显示出数据库数据时,单击Button后总是要托动滚动轴或者说是改变一下容器的大小才可以显示出数据不晓得为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重新设置TableModeltable.setModel(model); after you update the table data, you should call fireTableChanged method in the table model 不可以,我把程序传上来,你们帮我看看吧.怎么改?--------------------------------------------------------------------------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; }} 上面的的倒数第三行的JTable table;是多余的你们直接删了就行!!数据库回复的时候没有办法以附件的形势添加,你们就自己给建一个吧我这里先行谢过了,等着你们胜利的消息.我这边也得忙着-----先 多谢!!不过是repaint 大家来讨论一下这道java基础题 多线程同步问题请教 释放swt中GC对象出错,不知何原因。请高手指教! 初学者求jdbc代码优化,谢谢! Core Java第二卷有个错误?URLConnectionTest JAVA校验和算法和C++的结果不同 计算器问题,请高手帮忙....... 这是本人做的简单的线程池的代码?请各位高手看看原理有没错。 applet的一个初级问题 运行applet时安装jre出现问题,大侠帮忙! 有关编写一个判断是否回文的程式 一个关于编码的问题问题
table.setModel(model);
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;
}
}
倒数第三行的JTable table;
是多余的你们直接删了就行!!
数据库回复的时候没有办法以附件的形势添加,
你们就自己给建一个吧
我这里先行谢过了,
等着你们胜利的消息.
我这边也得忙着-----先
不过是
repaint