展开全部
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import com.DB;
public class TableFromDB extends JFrame{
private TableModel model;
public TableFromDB(){
JPanel panel=new JPanel();
panel.setSize(400, 400);
add(panel,"Center");
model= new TableModel();
final JTable t=new JTable(model);
JScrollPane s_pan = new JScrollPane(t);
panel.add(s_pan);
final JButton load=new JButton("Load");
final JButton reset=new JButton("Reset");
panel.add(load);
panel.add(reset);
load.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
List data=getData();
model.removeRows(0, model.getRowCount());
for(int i=0;i
model.addRow((String)data.get(i).get(1), (String)data.get(i).get(2));
}
t.updateUI();
}
});
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
model.removeRows(0, model.getRowCount());
t.updateUI();
}
});
setSize(500,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public List getData(){
List data=new ArrayList();
DB db = new DB();
String sql = "select * from t_user";
Statement sm = db.getStatement();
int i=0;
try {
ResultSet rs = sm.executeQuery(sql);
while(rs.next()){
List detail=new ArrayList();
detail.add(rs.getLong("id"));
detail.add(rs.getString("name"));
detail.add(rs.getString("password"));
data.add(detail);
System.out.println(data.get(i).get(0)+" "+data.get(i).get(1)+" "+data.get(i).get(2));
i++;
}
} catch (SQLException e) {
e.printStackTrace();
}
List d1=new ArrayList();
d1.add(1);d1.add("C");d1.add("hello");
List d2=new ArrayList();
d2.add(2);d2.add("Java");d2.add("world");
data.add(d1);
data.add(d2);
return data;
}
public static void main(String[] args) {
new TableFromDB();
}
}
class TableModel extends AbstractTableModel{
private Vector content=null;
private String[] title_name = { "ID", "name", "password"};
public TableModel(){
content = new Vector();
}
public TableModel(int count){
content = new Vector(count);
}
public void addRow(String name, String password) {
Vector v = new Vector(3);
v.add(0, new Integer(content.size()));
v.add(1, name);
v.add(2, password);
content.add(v);
}
public void removeRow(int row) {
content.remove(row);
}
public void removeRows(int row, int count) {
for (int i = 0; i < count; i++) {
if (content.size() > row) {
content.remove(row);
}
}
}
public int getColumnCount() {
return title_name.length;
}
public int getRowCount() {
return content.size();
}
public Object getValueAt(int row, int col) {
return ((Vector) content.get(row)).get(col);
}
public String getColumnName(int col) {
return title_name[col];
}
public void setValueAt(Object value, int row, int col) {
((Vector) content.get(row)).remove(col);
((Vector) content.get(row)).add(col, value);
this.fireTableCellUpdated(row, col);
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 0) {
return false;
}
return true;
}
本回答由提问者推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起