今日股市收评:实在没有分给了,希望大家能帮我,关于java.swing.jtable的,着急啊!

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 16:25:03
我在我设计的查询窗体里面想添加一个表(jtable),构建了表模型,代码如下,可是表头就是添不到表上(就是比如 学号 姓名 年龄 这样的),请大家帮忙,这几天问的没有分了,希望大家多担待.谢谢了.着急,让大家费心了!

package Lianxi;

import javax.swing.*;
import java.awt.GridLayout;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import java.awt.BorderLayout;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

public class Jbcx11
extends JFrame {
public Jbcx11() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}

private void jbInit() throws Exception {

model = new CustomTableModel(10, columnNames.length, columnNames, dataType);
table = new JTable(model);
jPanel2.setLayout(new BorderLayout());
jPanel2.add(new JScrollPane(table), BorderLayout.CENTER);
}

public void clearAllrowsInTable(CustomTableModel model) {
while (model.getRowCount() > 0) {
model.removeRow(0);
}
}

CustomTableModel model = null;
JTable table = null;
Class[] dataType = {
String.class, String.class, String.class, String.class, String.class,
String.class};
String[] columnNames = {
"学员编号", "姓名", "性别", "年龄", "联系电话", "入学时间"};
public void jButton1_actionPerformed(ActionEvent e) {
//try {
String dbUrl = "jdbc:odbc:StudentInfo";
String user = "sa";
String password = "123";
clearAllrowsInTable(model);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection(dbUrl, user, password);
Statement s = c.createStatement();
ResultSet r = s.executeQuery("select * from 学员表");
while (r.next()) {
int column = model.getColumnCount();
Object[] line = new Object[column];
for (int i = 0; i < column; i++) {
line[i] = r.getString(i + 1).trim();

}
model.addRow(line);
}
}
catch (Exception ex) {
System.out.print(ex.getMessage());
System.out.print("shi bai");
}
}

}

class Jbcx11_jButton1_actionAdapter
implements ActionListener {
private Jbcx11 adaptee;
Jbcx11_jButton1_actionAdapter(Jbcx11 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
运行后的结果,表头都是 A B C D E F 不是学员编号,姓名这样的表头
程序是在jbuilder 里做的,所以有一些生成的代码,比如动作事件

为什么不在做表的时候直接在表上添加呢?:
package tabletest;

import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
import java.util.Vector;

import javax.swing.*;

public class TableTest extends JFrame{
private JTable table = null;

public void creatTable() {
/**
* 数据
*/
Vector t = new Vector();
for(int i=0;i<3;i++) {
Random r=new Random();
Vector v = new Vector();
v.addElement(Math.abs(r.nextInt())%100);
v.addElement(Math.abs(r.nextInt())%100);
v.addElement(Math.abs(r.nextInt())%100);
t.add(v);
}
/**
* 表头
*/
Vector columnNames = new Vector();
columnNames.addElement("表头一");
columnNames.addElement("表头二");
columnNames.addElement("表头三");
/**
* 生成表
*/
table = new JTable(t,columnNames);

JScrollPane p = new JScrollPane(table);
add(p);
p.setPreferredSize(new Dimension(300,80));
pack();
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

public TableTest() {
super("表测试");
creatTable();
}

public static void main(String[] args) {
TableTest tt = new TableTest();
}
}