package csgl;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
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.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
//维护表格
public class huiyuan extends JFrame{
private DefaultTableModel tableModel; //表格模型对象
private JTable table;
private JTextField aTextField;
private JTextField bTextField;
private JTextField cTextField;
public void de1() {
// TODO Auto-generated method stub
setTitle("会员管理");
setBounds(200,200,800,800);
setSize(800,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] columnNames = {"卡号","姓名","积分","卡级别"}; //列名
String [][]tableVales={{"123321","张三","321","普通卡"}}; //数据
String [] str = {"普通卡","白金卡","黄金卡","VIP卡","至尊卡"};
tableModel = new DefaultTableModel(tableVales,columnNames);
table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table); //支持滚动
getContentPane().add(scrollPane,BorderLayout.CENTER);
//table.setRowSorter(new TableRowSorter(tableModel));
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //单选
table.addMouseListener(new MouseAdapter(){ //鼠标事件
public void mouseClicked(MouseEvent e){
int selectedRow = table.getSelectedRow(); //获得选中行索引
Object oa = tableModel.getValueAt(selectedRow, 0);
Object ob = tableModel.getValueAt(selectedRow, 1);
aTextField.setText(oa.toString()); //给文本框赋值
bTextField.setText(ob.toString());
}
});
scrollPane.setViewportView(table);
final JPanel panel = new JPanel();
getContentPane().add(panel,BorderLayout.SOUTH);
panel.add(new JLabel("卡号: "));
aTextField = new JTextField("",6);
panel.add(aTextField);
panel.add(new JLabel("姓名: "));
bTextField = new JTextField("",5);
panel.add(bTextField);
panel.add(new JLabel("积分: "));
cTextField = new JTextField("",10);
panel.add(cTextField);
panel.add(new JLabel("卡级别: "));
final JComboBox jcb = new JComboBox(str);
panel.add(jcb);
final JButton addButton = new JButton("添加"); //添加按钮
addButton.addActionListener(new ActionListener(){//添加事件
public void actionPerformed(ActionEvent e){
String []rowValues = {aTextField.getText(),bTextField.getText(),cTextField.getText(),jcb.getEditor().getItem().toString()};//swing中获取下拉列表编辑后的值
tableModel.addRow(rowValues); //添加一行
int rowCount = table.getRowCount() +1; //行数加上1
}
});
panel.add(addButton);
final JButton updateButton = new JButton("修改"); //修改按钮
updateButton.addActionListener(new ActionListener(){//添加事件
public void actionPerformed(ActionEvent e){
int selectedRow = table.getSelectedRow();//获得选中行的索引
if(selectedRow!= -1) //是否存在选中行
{
//修改指定的值:
tableModel.setValueAt(aTextField.getText(), selectedRow, 0);
tableModel.setValueAt(bTextField.getText(), selectedRow, 1);
//table.setValueAt(arg0, arg1, arg2)
}
}
});
panel.add(updateButton);
final JButton delButton = new JButton("删除");
delButton.addActionListener(new ActionListener(){//添加事件
public void actionPerformed(ActionEvent e){
int selectedRow = table.getSelectedRow();//获得选中行的索引
if(selectedRow!=-1) //存在选中行
{
tableModel.removeRow(selectedRow); //删除行
}
}
});
panel.add(delButton);
final JButton cloButton = new JButton("返回");
cloButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});
panel.add(cloButton);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
}
}
你在点击添加后在调一次查询不就行了嘛
在执行插入成功后,关闭当前窗口,再打开当前页面的新窗口,就可以实现窗口的刷新,表格的数据就会更新了