📄 deletejdialog.java
字号:
/*
* DeleteJDialog.java
*
* Created on 2008年1月2日, 上午2:31
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
import java.util.ArrayList;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
/**
*
* @author Wangyiming
*/
public class DeleteJDialog extends JDialog{
/** Creates a new instance of DeleteJDialog */
public DeleteJDialog(JFrame owner) {
super(owner,"删除用户",true);
this.setLayout(null);
//初始化各个控件
jLabelUserName=new JLabel("用户名:");
jLabelPassword=new JLabel("密码:");
jcombUserName=new JComboBox();
jpfPassword=new JPasswordField("");
jButtonOk=new JButton("确定");
jButtonCancel=new JButton("取消");
//获取数据库中所有的用户名
this.Update_Con();
//设置控件位置
jLabelUserName.setBounds(10,20,80,20);
jLabelPassword.setBounds(10,50,80,20);
jcombUserName.setBounds(100,20,150,20);
jpfPassword.setBounds(100,50,150,20);
jButtonOk.setBounds(80,90,60,20);
jButtonCancel.setBounds(160,90,60,20);
//为按钮添加监听器
jButtonOk.addActionListener(new OkAction());
jButtonOk.registerKeyboardAction(new OkAction(), KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), JComponent.WHEN_IN_FOCUSED_WINDOW);
jButtonCancel.addActionListener(new CancelAction());
jButtonCancel.registerKeyboardAction(new CancelAction(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0), JComponent.WHEN_IN_FOCUSED_WINDOW);
//将控件添加到容器中
this.add(jLabelUserName);
this.add(jLabelPassword);
this.add(jcombUserName);
this.add(jpfPassword);
this.add(jButtonOk);
this.add(jButtonCancel);
//设置位置,大小,标题
this.setBounds(280,320,300,150);
this.setTitle("删除用户");
this.setResizable(false);
}
public void setCurrentUser(String name)
{
currentUser=name;
}
public void Update_Con()
{
user.clear();
pwds.clear();
jpfPassword.setText(null);
jcombUserName.removeAllItems();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
JOptionPane.showConfirmDialog(null,"找不到数据库驱动程序!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
}
try {
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=sources\\Data.mdb;pwd=shujuyuan";
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from users");
while(rs.next())
{
String s=new String(rs.getString("name")); //相当于rs.getString(1)
String p=new String(rs.getString("pwd")); //相当于rs.getString(2)
user.add(s);
pwds.add(p);
}
con.close();
st.close();
// rs.close();
} catch (Exception ex) {
JOptionPane.showConfirmDialog(null,"用户数据库文件不存在!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
}
for(String u:user) jcombUserName.addItem(u);
}
private JLabel jLabelUserName;
private JLabel jLabelPassword;
private JComboBox jcombUserName;
private JPasswordField jpfPassword;
private JButton jButtonOk,jButtonCancel;
private ArrayList<String> pwds=new ArrayList<String>();
private ArrayList<String> user=new ArrayList<String>();
private String currentUser="";
private class OkAction implements ActionListener
{
public void actionPerformed(ActionEvent e) {
int index=jcombUserName.getSelectedIndex();
String pwd=new String(jpfPassword.getPassword());
jcombUserName.setSelectedIndex(0);
if(((String)jcombUserName.getItemAt(index)).trim().equalsIgnoreCase("administrator"))
{
JOptionPane.showConfirmDialog(null,"无法删除超级管理员!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
jpfPassword.setText(null);
return;
}
else if(((String)jcombUserName.getItemAt(index)).trim().equalsIgnoreCase(currentUser))
{
JOptionPane.showConfirmDialog(null,"无法删除当前用户!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
jpfPassword.setText(null);
return;
}
else if(pwd.equalsIgnoreCase(pwds.get(index)))
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
JOptionPane.showConfirmDialog(null,"找不到数据库驱动程序!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
}
try {
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=sources\\Data.mdb;pwd=shujuyuan";
Connection con=DriverManager.getConnection(url);
PreparedStatement ps=con.prepareStatement("delete from users where name=?");
ps.setString(1,new String((String)jcombUserName.getItemAt(index)));
ps.executeUpdate();
jpfPassword.setText(null);
jcombUserName.removeItemAt(index);
JOptionPane.showConfirmDialog(null,"删除用户成功!","Information",JOptionPane.CLOSED_OPTION,JOptionPane.INFORMATION_MESSAGE);
setVisible(false);
} catch(Exception ex) {
JOptionPane.showConfirmDialog(null,"用户数据库文件不存在!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
}
}
else
{
jpfPassword.setText(null);
jcombUserName.setSelectedIndex(index);
JOptionPane.showConfirmDialog(null,"密码有错误!","Warning",JOptionPane.CLOSED_OPTION,JOptionPane.WARNING_MESSAGE);
}
}//actionperformed
}
private class CancelAction implements ActionListener
{
public void actionPerformed(ActionEvent e) {
DeleteJDialog.this.setVisible(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -