java 板


LINE

大家好,小弟目前在实作从资料库中抓资料丢进JTable中, 从表单抓资料已经可运作,请问如果想在另一个class的方法内画出JTable, 而且这个JTable要能抓到conSQL这个class中的columnName与recordSet,请问该如何实作 ? 小弟用过DefaultTableModel..都抓不到资料..麻烦各位大大指点小弟一下 谢谢~ 补充一下我现在的做法 我另一个class是继承conSQL这个class,但是在使用columnName时 ,是空值...是小弟的想法哪边歪了吗? 谢谢~~ 补充一下JTable部分和主程式部分 class A { public static voide main(String[] args){ conSQL cns = new conSQL(); cns.run("select * from employees"); member_dialog td = new member_dialog(); //产生对话视窗 td.layout(); } } class conSQL { String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; String url = "jdbc:odbc:JDBC"; int columnCount; String[] columnName; String[] record; Connection con; Statement stmt; ResultSet rs; ResultSetMetaData rsmd; @SuppressWarnings("rawtypes") Vector recordSet; @SuppressWarnings("rawtypes") public conSQL() { // 建构函式 recordSet = new Vector(); } @SuppressWarnings({ "unchecked", "rawtypes" }) public void run(String sqlString) { recordSet = new Vector(); try { Class.forName(driver);// 载入JDBC Driver con = DriverManager.getConnection(url);// 与资料来源建立连结 stmt = con.createStatement(); // 建立Statement物件 rs = stmt.executeQuery(sqlString); // 执行SQL指令以ResultSet物件储存 rsmd = rs.getMetaData(); // 回传ResultSet栏位的数目、型态、属性 columnCount = rsmd.getColumnCount(); // 回传ResultSet栏位的数目 columnName = new String[columnCount]; for (int i = 1; i <= columnCount; i++) { columnName[i-1] = rsmd.getColumnName(i);// 取得ResultSet栏位的名称 System.out.println(columnName[i-1]); } while (rs.next()) { record = new String[columnCount]; for (int i = 1; i <= columnCount; i++) { record[i-1] = rs.getString(i); System.out.println(record[i-1]); } recordSet.addElement(record); //全部资料 } //fireTableChanged(null); if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } } catch (Exception e) { recordSet = new Vector(); e.printStackTrace(); } } public String getColumnName(int i) { return columnName[i]; } public int getColumnCount() { return columnCount; } public int getRowCount() { return recordSet.size(); } public Object getValueAt(int row, int col) { return ((String[]) recordSet.elementAt(row))[col]; } } ==================================================================== class member_dialog extends conSQL{ JFrame frame; JScrollPane scroller_1; DefaultTableModel model; JTable table; public member_dialog(){ frame = new JFrame(); scroller_1 = new JScrollPane(); model = new DefaultTableModel(); } public void layout(){ Container pane = frame.getContentPane(); GridBagLayout grid = new GridBagLayout(); GridBagConstraints gc = new GridBagConstraints(); pane.setLayout(grid); try{ for (int i = 1; i <= columnCount; i++) { model.addColumn(columnName[i-1]); } while (rs.next()) { for (int i = 1; i <= columnCount; i++) { record[i-1] = rs.getString(i); } recordSet.addElement(record); //全部资料 model.addRow(recordSet); } } catch(Exception e){ e.printStackTrace(); } table = new JTable(model); table.setShowGrid(true); // 是否显示表格的格线 table.setShowHorizontalLines(true); // 是否显示表格的水平格线 table.setShowVerticalLines(true); // 是否显示表格的垂直格线 table.setRowSelectionAllowed(true); // 是否允许选择横列 table.setColumnSelectionAllowed(true); // 是否允许选择直行 table.getTableHeader().setReorderingAllowed(true);// 是否允许移动直行 table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 设定多重选 择模式为单选 gc.gridx = 0; //公司成员表格 gc.gridy = 1; gc.gridwidth = 2; gc.gridheight = 2; table.setPreferredScrollableViewportSize(new Dimension(400, 200)); scroller_1.setViewportView(table); pane.add(scroller_1,gc); } } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.171.127.97
1F:→ darkk6:所以你的问题是 columnNames null 还是 JTable 没东西 ?? 09/03 02:29
2F:→ callmeleo:JTable显示不出东西 columnName和recordSet皆有抓到资料 09/03 02:54
3F:→ darkk6:那应该给一下 JTable 放资料的部分 09/03 10:13
※ 编辑: callmeleo 来自: 122.121.202.186 (09/03 15:50)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP