📄 recruitpanel.java~16~
字号:
package memberpane;
import javax.swing.*;
import java.awt.Rectangle;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.SQLException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class RecruitPanel extends JPanel {
/**
* 构造器
* @param table JTable: 该面板所依赖的表格对象
*/
public RecruitPanel(JTable table) {
this.table = table;
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(null);
jLabel1.setText("会员编号");
jLabel1.setBounds(new Rectangle(20, 25, 56, 23));
jLabel2.setText("会员姓名");
jLabel2.setBounds(new Rectangle(20, 63, 56, 23));
jLabel3.setText("充值金额");
jLabel3.setBounds(new Rectangle(20, 101, 56, 23));
jLabel4.setText("现有金额");
jLabel4.setBounds(new Rectangle(20, 139, 56, 23));
vipidField.setEditable(false);
vipidField.setBounds(new Rectangle(83, 25, 82, 23));
nameField.setEditable(false);
nameField.setBounds(new Rectangle(83, 63, 82, 23));
recruitField.setBounds(new Rectangle(83, 101, 82, 23));
recruitField.addKeyListener(new RecruitPanel_recruitField_keyAdapter(this));
curMoneyField.setEditable(false);
curMoneyField.setBounds(new Rectangle(83, 139, 82, 23));
okButton.setBounds(new Rectangle(20, 219, 68, 28));
okButton.setText("确定");
okButton.addActionListener(new RecruitPanel_okButton_actionAdapter(this));
cancelButton.setBounds(new Rectangle(97, 219, 68, 28));
cancelButton.setText("取消");
cancelButton.addActionListener(new
RecruitPanel_cancelButton_actionAdapter(this));
jLabel5.setText("充后金额");
jLabel5.setBounds(new Rectangle(20, 177, 56, 23));
sumField.setEditable(false);
sumField.setBounds(new Rectangle(83, 177, 82, 23));
this.add(jLabel1);
this.add(vipidField);
this.add(jLabel2);
this.add(jLabel3);
this.add(jLabel4);
this.add(jLabel5);
this.add(nameField);
this.add(recruitField);
this.add(curMoneyField);
this.add(sumField);
this.add(cancelButton);
this.add(okButton);
int selectedRow = table.getSelectedRow();
if(selectedRow != -1){//当确实有一行被选中的时候,可以对该行进行修改
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
}
String dburl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=db.mdb";
try {
conn = DriverManager.getConnection(dburl);
} catch (SQLException ex1) {
}
Statement stmtQuery = null;
ResultSet rs = null;
try {
stmtQuery = conn.createStatement();
ID = (String)table.getValueAt(selectedRow,0);//ID赋值为当前行的第0位上的值,即会员的ID
rs = stmtQuery.executeQuery("select * from VIP where ID =" + ID + "");
rs.next();
//获得相应字段值
String Mname = rs.getString("Name");
String Mvipid = rs.getString("VIPID");
String Mcurmoney = rs.getString("CurMoney");
//设置面板上相应会员信息值
nameField.setText(Mname);
vipidField.setText(Mvipid);
curMoneyField.setText(Mcurmoney);
conn.close();
}catch (SQLException ex) {
System.out.println(ex.getStackTrace());
}
} else {
}
}
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JTextField vipidField = new JTextField();
JTextField nameField = new JTextField();
JTextField recruitField = new JTextField();
JTextField curMoneyField = new JTextField();
JButton okButton = new JButton();
JButton cancelButton = new JButton();
JLabel jLabel5 = new JLabel();
JTextField sumField = new JTextField();
JTable table = null;
private String ID = "-1";//记录将要修改的会员的ID号,如果为-1,则说明尚无选定的会员。选择String类型是为了符合其数据库类型
public void okButton_actionPerformed(ActionEvent e) {
}
public void cancelButton_actionPerformed(ActionEvent e) {
//通过当前panel得到其所依附的JFrame,需要四次getParent()
//从底层向上分别为:RecruitPanel->JPanel->JLayeredPane->JRootPane->JFrame
JFrame frame = (JFrame)this.getParent().getParent().getParent().getParent();
frame.setVisible(false);
frame.dispose();
}
public void recruitField_keyReleased(KeyEvent e) {
String curMoney = curMoneyField.getText();
double cur = 0.0;
try{
cur = Double.parseDouble(curMoney);
}catch(NumberFormatException fe){
}
String recruitMoney = recruitField.getText();
if(recruitMoney == null)
return;
double recruit = 0.0;
try{
recruit = Double.parseDouble(recruitMoney);
Double sum = recruit + cur;
sumField.setText(sum.toString());
}catch(NumberFormatException fe){
JOptionPane.showMessageDialog(null, "请输入数字信息!", "错误消息", JOptionPane.ERROR_MESSAGE);
}
}
}
class RecruitPanel_recruitField_keyAdapter
extends KeyAdapter {
private RecruitPanel adaptee;
RecruitPanel_recruitField_keyAdapter(RecruitPanel adaptee) {
this.adaptee = adaptee;
}
public void keyReleased(KeyEvent e) {
adaptee.recruitField_keyReleased(e);
}
}
class RecruitPanel_cancelButton_actionAdapter
implements ActionListener {
private RecruitPanel adaptee;
RecruitPanel_cancelButton_actionAdapter(RecruitPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cancelButton_actionPerformed(e);
}
}
class RecruitPanel_okButton_actionAdapter
implements ActionListener {
private RecruitPanel adaptee;
RecruitPanel_okButton_actionAdapter(RecruitPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.okButton_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -