怎样把查询数据库中某一条信息的结果放到JTable中?高手帮帮

2024-12-23 11:35:33
推荐回答(1个)
回答1:

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class Window extends JFrame implements ActionListener {
// 建立标签
protected JLabel labelnum, labelname, labelage, labelsex, labelximing,
labeltelephone, labelemall;
// 建立文本
protected JTextField txtnum;
protected JTextField txtname;
protected JTextField txtage;
protected JTextField txtsex;
protected JTextField txtximing;
protected JTextField txttelephone;
protected JTextField txtemall;
protected JTable tblInfo;

// 建立按扭
protected JButton inquires, record;

// 表头
private Vector vecColName;

public Window() {
super("学生信息查询系统");
// 定义标签
labelnum = new JLabel("学号");
labelname = new JLabel("姓名");
labelage = new JLabel("年龄");
labelsex = new JLabel("性别");
labelximing = new JLabel("系名");
labeltelephone = new JLabel("电话");
labelemall = new JLabel("emall地址");
// 定义文本
txtnum = new JTextField(10);
txtname = new JTextField(8);
txtage = new JTextField(5);
txtsex = new JTextField(6);
txtximing = new JTextField(10);
txttelephone = new JTextField(10);
txtemall = new JTextField(10);
// 定义按扭
inquires = new JButton("学号查询");
record = new JButton("全部记录");
// 定义表格
vecColName = new Vector();
vecColName.add("学号");
vecColName.add("姓名");
// 自己添加
vecColName.add("email地址");
tblInfo = new JTable();
initTable(null);
JScrollPane jspTable = new JScrollPane();
jspTable.getViewport().add(tblInfo, null);

// 布局管理
Container c = getContentPane();
c.setLayout(new FlowLayout());
// 定义面板
JPanel p1, p2, p3;
// 把标签,文本加入到窗口中
p1 = new JPanel();
c.add(p1);
p1.add(labelnum);
p1.add(txtnum);
p1.add(labelname);
p1.add(txtname);
p1.add(labelage);
p1.add(txtage);
p1.add(labelsex);
p1.add(txtsex);

p2 = new JPanel();
c.add(p2);
p2.add(labelximing);
p2.add(txtximing);
p2.add(labeltelephone);
p2.add(txttelephone);
p2.add(labelemall);
p2.add(txtemall);

p3 = new JPanel();
c.add(p3);

p3.add(inquires);
p3.add(record);

c.add(jspTable);

// 注册按扭事件监听器

inquires.addActionListener(this);
record.addActionListener(this);

this.setSize(550, 600); // 设置窗口大小
this.setVisible(true); // 显示窗口
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口
}

public void actionPerformed(ActionEvent e) {
// 查询数据库,整理数据格式,以下演示数据结构
Vector> vecData = new Vector>();
for (int i = 0; i < 20; i++) { // 行
Vector vecCol = new Vector(); // 存放列数据
for (int j = 100; j < 103; j++) { // 列
vecCol.add(i + " " + j);
}
vecData.add(vecCol); // 添加一行数据
}

initTable(vecData);
}

/**
* 初始化表格
*
* @param vec
*/
private void initTable(Vector> vec) {
DefaultTableModel model = null;
if (vec == null || vec.size() == 0) {
model = new DefaultTableModel(vecColName, 0);
} else {
model = new DefaultTableModel(vec, vecColName);
}

tblInfo.setModel(model);
}

public static void main(String args[]) {

new Window();

}
}