您的位置:首页 > 其它

JTable 和 AbstractTableModel 几个关键点

2015-06-25 00:42 337 查看
1 重写的方法

@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return this.columnNames.size();
}

@Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
return (String) this.columnNames.get(column);
}

@Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.rowData.size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return ((Vector)this.rowData.get(rowIndex)).get(columnIndex);
}


2 JTable 中有更新数据模型的方法 setModel(新模型实例)

StuModel sm = new StuModel("select * from stu where name like '%"+s+"%'");
jt.setModel(sm);


以下代码供参考

package stuMS;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.*;

public class NewMs extends JFrame implements ActionListener{

/**
* @param args
*/
JPanel jp1,jp2;
JLabel jl1;
JButton jb1,jb2,jb3,jb4;
JTable jt;
JScrollPane jsp;
JTextField jtf;

public static void main(String[] args) {
// TODO Auto-generated method stub

NewMs nm = new NewMs();
}

public NewMs(){
jp1 = new JPanel();
jtf = new JTextField(10);
jb1= new JButton("查询");
jb1.addActionListener(this);
jl1 = new JLabel("输入名字");

jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);

jp2 = new JPanel();
jb2 = new JButton("tianjia");
jb3 = new JButton("xiugai");
jb4 = new JButton("shanchu");

jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);

StuModel sm = new StuModel("select * from stu");

jt = new JTable(sm);

jsp = new JScrollPane(jt);

this.add(jp1,BorderLayout.NORTH);
this.add(jp2,BorderLayout.SOUTH);
this.add(jsp,BorderLayout.CENTER);
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb1){
System.out.println("i want query");
}
String s = jtf.getText().trim();
StuModel sm = new StuModel("select * from stu where name like '%"+s+"%'"); jt.setModel(sm);
}

}


package stuMS;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.*;
import javax.swing.table.AbstractTableModel;

public class StuModel extends AbstractTableModel{

Vector rowData, columnNames;

PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;

public StuModel(String sql){
columnNames = new Vector<String>();
columnNames.add("ID");
columnNames.add("name");
columnNames.add("sex");
columnNames.add("bornin");
columnNames.add("major");

rowData = new Vector<Vector<String>>();

try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
ct = DriverManager.getConnection("jdbc:microsoft:sqlserver://hzz:1433;databaseName=Heros","sa","13871955777");
ps = ct.prepareStatement(sql);
rs = ps.executeQuery();

while(rs.next()){
Vector hang = new Vector<String>();
hang.add(rs.getInt(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getString(4));
hang.add(rs.getString(5));
rowData.add(hang);

}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(rs!=null)rs.close();
if(ps!=null) ps.close();
if(ct!=null) ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

// public StuModel(){
// String s = "select * from stu";
// StuModel(s);
//
// }

@Override public int getColumnCount() { // TODO Auto-generated method stub return this.columnNames.size(); } @Override public String getColumnName(int column) { // TODO Auto-generated method stub return (String) this.columnNames.get(column); } @Override public int getRowCount() { // TODO Auto-generated method stub return this.rowData.size(); } @Override public Object getValueAt(int rowIndex, int columnIndex) { // TODO Auto-generated method stub return ((Vector)this.rowData.get(rowIndex)).get(columnIndex); }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: