没有反应,一片空白!

painus 2002-07-09 06:12:35
package alpha;

import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
/**
* 描述:通过查询数据库,取得显示结果数据的数据库表的JScrollPane组件显示
* */

public class GetTableFromDb{
public GetTableFromDb() {
try {
/*// 登陆数据库OMT,使用jdbc-odbc桥
String dbUrl = "DbUrl";//所配置的对应数据库的数据源
String user = "UserId";//用户
String password = "password";//口令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbUrl, user, password);
//*/
String address = "jdbc:microsoft:sqlserver://192.168.0.100:1433";
//驱动类型+目标数据库ip+数据库端口
String user="jacky";//数据库用户密码
String passwd="sa";//口令
String database = "pubs";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库

Statement stmt = con.createStatement();
String sqlCode = "SELECT au_id,phone,state FROM authors";//只提取三个字段
ResultSet rs = stmt.executeQuery(sqlCode);
Vector vect = new Vector();//用于存放数据记录
vect.removeAllElements();//初始化向量对象
while(rs.next()) {//依次读取数据结果集
Vector rec_vector=new Vector();//从结果集中取数据放入向量rec_vector中
rec_vector.addElement(rs.getString(1));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getString(3));
vect.addElement(rec_vector);//向量rec_vector加入向量vect中
}
//表列标题
String[] titleStr = {"第一列","第二列","第三列"};//表列标题设定
Vector title = new Vector();//用于存放表列标题
title.removeAllElements();
for(int i=0;i<titleStr.length;i++) {
title.addElement(titleStr[i]);
}
//生成表
jTable = new JTable(vect,title);

//释放资源
rs.close();
stmt.close();
con.close();
}
catch(Exception e) {
System.out.println("GetTableFromDB error:" + e);
}
}
public JTable getTable() {
return jTable;
}
private JTable jTable;//e生成的最终表单
}
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
painus 2002-07-09
  • 打赏
  • 举报
回复
1.我新建的是应用程序(Application),不是工程。你按我的步骤做,一样也有.即:
File --> New-->application-->name=alpha,选jpr,定好程序的目录-->next-->next
->finish-->接下来会出现另外一个对话框,让你填 package和class.于是我这里填上package=alpha(自动生成的),class=Test
2.显示界面里没有显示表格,也没有看到列名,就是一个光板!
3.我的连数据库的连接字没有错,对应的数据库,用户名,密码都是对的,我用database控件绑定测试过。
4.我想,应该是我的步骤错了,错在你说的扩展JFrame类上,我用两种方法试过。
一是用上面那种建立应用程序的办法,直接将class等于Test,再增加一个类
GetTableFromDb.java.即总共得到俩个类,再copy你的代码即可!
二是按你说的,File --> project-->>name=alpha,选jpr,定好程序的目录--
->finish-->然后添加两个类,结果还是一样的。
所以我想,可能是扩展的问题!
painus 2002-07-09
  • 打赏
  • 举报
回复
好的,你最好将整个目录给我!谢谢你!
hou_jacky@hotmail.com
alphazhao 2002-07-09
  • 打赏
  • 举报
回复
如果实在还是不行,留个email邮箱,我将这个package发给你,你用jb打开,修改一下数据库属性连接就行
alphazhao 2002-07-09
  • 打赏
  • 举报
回复
不好意思,吃饭去了,现在回
第1步,建立工程
File --> New-->application-->name=alpha,选jpr,定好程序的目录-->next-->next
->finish-->package=alpha(自动生成的),class=Test
你建立工程的时候,怎么会出现一个class Test的选项?

是不是衣裳两个文件你不是放在同一个名为alpha的package里面?
否则是不会错的。
另外,你说你看到一个表单,这是什么意思,是不是看到一个显示界面?但是没有显示表格?(如果是这样,则表名连接数据库没有成功,系统肯定会输出一些信息)
第二是是看到了列名“第一列”“第二列”“第三列”,但是没有数据?这就是说没有取得数据,看看你的数据库里面有无记录。

程序我看了,没有问题阿,要不你将用户名改为sqlserver数据库默认用户sa试试:
String user="sa";//数据库用户名改为sa
String passwd="";//口令改为空
不过应该不会是权限问题阿,否则会报错的。
难道系统真的没有输出任何信息?(由于我错误捕捉了,输出的信息不会显示为红色,而是正常输出……)
painus 2002-07-09
  • 打赏
  • 举报
回复
下面这一部分是Test.java的内容,GetTableFromDb.java的我已帖在我的问题里!谢谢你,大哥!
package alpha;
import javax.swing.*;
import java.awt.*;
/**
* main函数入口所在class,是显示一个界面
**/
public class Test extends JFrame {
private JPanel jPanel1 = new JPanel();
private JScrollPane jScrollPane1;//容器
private JTable jTable;//表单
public Test() {
try {
GetTableFromDb gtfd = new GetTableFromDb();//调用数据库连接class
jTable = gtfd.getTable();//取得结果表数据
jScrollPane1 = new JScrollPane(jTable);//放入容器
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setSize(400,300);//设置显示界面大小
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jScrollPane1, BorderLayout.CENTER);
}
///main方法入口
public static void main(String[] args) {
Test st = new Test();
st.show();
}
///
}
painus 2002-07-09
  • 打赏
  • 举报
回复
这样,我给你看看我是如何操作的,你给我改一改。
打开jbuilder,关闭所有已经打开的工程
开始:
第1步,建立工程
File --> New-->application-->name=alpha,选jpr,定好程序的目录-->next-->next
->finish-->package=alpha(自动生成的),class=Test

第2步,添加class GetTableFromDb
File --> New Class…,设定名字为GetTableFromDb(大小没有写错),
此时系统生成GetTableFromDb.java文件
第3步,此处没有添加class Test
第4步,copy GetTableFromDb.java和Test.java文件的代码并修改连接字符串。
第5步,运行
在打开Test.java文件编辑状态时,运行Run -- Run "test.java"(只有在打开当前Test文件Run菜单才会出现这个运行栏,因为它有main入口)
!!!系统没有报任何错,只是出现一个表单,里面什么都没有!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧