📄 tidyuserframe.java
字号:
//整理用户窗口
import javax.swing.*;
import java.net.URL;
import java.sql.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class TidyUserFrame extends JFrame implements ActionListener,ItemListener{
static final long serialVersionUID=80;
JLabel keytypelabel,keylabel,userlabel,recordlabel;
JRadioButton userbutton,typebutton;
ButtonGroup group;
JTextField field;
EllipseButton searchbutton,changebutton,delbutton,viewbutton,printuserbutton,printrecordbutton;
JTable usertable,recordtable;
JScrollPane userpane,recordpane;
JProgressBar userprogress,recordprogress;
Dimension screenSize;
Toolkit tool;
Image myimage;
AudioClip audio;
URL audiourl;
Container container;
Connection con;
PrintJob printjob;
Graphics graphics;
Object[][] user=new Object[10][3];
Object[][] record=new Object[10][2];
Object[] usercolumn={"用户名","密码","类型"};
Object[] recordcolumn={"登录时间","离开时间"};
int n=-1;
Statement sql;
String[] keytype={"UserName","UserPurview"};
TidyUserFrame(String title,Connection con){
super(title);
this.con=con;
setResizable(false);
setSize(750,262);
container=getContentPane();
container.setBackground(Color.ORANGE);
container.setLayout(null);
tool=getToolkit();
URL url = getClass().getResource("/images/tidy.GIF");
if(url!=null){
myimage=tool.getImage(url);
setIconImage(myimage);
}
screenSize=tool.getScreenSize();
keytypelabel=new JLabel("关键字的类型:");
keylabel=new JLabel("关键字:");
userlabel=new JLabel("用户资料");
recordlabel=new JLabel("用户记录");
userbutton=new JRadioButton("用户名");
typebutton=new JRadioButton("类型");
userbutton.addItemListener(this);
typebutton.addItemListener(this);
group=new ButtonGroup();
userbutton.addItemListener(this);
typebutton.addItemListener(this);
group.add(userbutton);
group.add(typebutton);
userbutton.setBackground(Color.ORANGE);
typebutton.setBackground(Color.ORANGE);
field=new JTextField(20);
searchbutton=new EllipseButton("查询");
changebutton=new EllipseButton("修改");
delbutton=new EllipseButton("删除");
viewbutton=new EllipseButton("查看记录");
printuserbutton=new EllipseButton("打印资料");
printrecordbutton=new EllipseButton("打印记录");
searchbutton.addActionListener(this);
changebutton.addActionListener(this);
delbutton.addActionListener(this);
viewbutton.addActionListener(this);
printuserbutton.addActionListener(this);
printrecordbutton.addActionListener(this);
usertable=new JTable(user,usercolumn);
recordtable=new JTable(record,recordcolumn);
userpane=new JScrollPane(usertable);
recordpane=new JScrollPane(recordtable);
userprogress=new JProgressBar(JProgressBar.HORIZONTAL,0,50);
userprogress.setStringPainted(true);
recordprogress=new JProgressBar(JProgressBar.HORIZONTAL,0,50);
recordprogress.setStringPainted(true);
container.add(recordlabel);
recordlabel.setBounds(0,5,150,30);
container.add(recordpane);
recordpane.setBounds(0,30,200,180);
container.add(recordprogress);
recordprogress.setBounds(0,210,200,25);
container.add(userlabel);
userlabel.setBounds(200,5,100,30);
container.add(userpane);
userpane.setBounds(200,30,280,180);
container.add(userprogress);
userprogress.setBounds(200,210,280,25);
container.add(keytypelabel);
keytypelabel.setBounds(500,50,130,30);
container.add(userbutton);
userbutton.setBounds(590,50,80,30);
container.add(typebutton);
typebutton.setBounds(670,50,80,30);
container.add(keylabel);
keylabel.setBounds(500,90,80,30);
container.add(field);
field.setBounds(570,95,160,20);
container.add(searchbutton);
searchbutton.setBounds(490,125,70,30);
container.add(changebutton);
changebutton.setBounds(580,125,70,30);
container.add(delbutton);
delbutton.setBounds(670,125,70,30);
container.add(viewbutton);
viewbutton.setBounds(490,165,70,30);
container.add(printuserbutton);
printuserbutton.setBounds(580,165,70,30);
container.add(printrecordbutton);
printrecordbutton.setBounds(670,165,70,30);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
}
});
setLocation((screenSize.width-getSize().width)/2,(screenSize.height-getSize().height)/2);
setVisible(true);
validate();
try{
sql=con.createStatement();
}
catch(SQLException e3){
JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
}
}
public void actionPerformed(ActionEvent e){
String keyword=field.getText().trim();
if(e.getSource()==searchbutton){
if(n!=-1&&keyword.length()!=0){
String queue="SELECT * FROM User_Info WHERE "+keytype[n]+" = "+"'"+keyword+"'";
try{
int m=0;
for(int i=0;i<user.length;i++){
for(int j=0;j<3;j++){
user[i][j]=null;
}
}
ResultSet rs=sql.executeQuery(queue);
while(rs.next()){
if(m==user.length){
container.remove(userpane);
Object[][] temp=user;
user=new Object[temp.length*2][];
usertable=new JTable(user,usercolumn);
userpane=new JScrollPane(usertable);
container.add(userpane);
userpane.setBounds(200,30,280,180);
for(int i=0;i<temp.length;i++){
for(int j=0;j<temp[i].length;j++){
user[i][j]=temp[i][j];
}
}
}
for(int i=0;i<3;i++){
user[m][i]=rs.getString(i+1);
}
m++;
}
audiourl=getClass().getResource("/sound/Search.wav");
if(audiourl!=null){
audio=Applet.newAudioClip(audiourl);
audio.play();
}
userprogress.setValue(m);
userprogress.setString("查询到"+m+"个用户");
usertable.repaint();
}
catch(SQLException e2){
JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
}
}
if(n==-1){
JOptionPane.showMessageDialog(this,"请选择关键字的类型");
}
if(keyword.length()==0){
JOptionPane.showMessageDialog(this,"请输入关键字");
}
}
else if(e.getSource()==changebutton){
if(usertable.getSelectedRowCount()==1&&user[usertable.getSelectedRow()][0]!=null){
new AddOrChangeUser("修改用户",con,false,usertable,user);
}
else{
JOptionPane.showMessageDialog(this,"请选择要修改的用户");
}
}
else if(e.getSource()==delbutton){
int[] returnrow;
int g=0;
if((returnrow=usertable.getSelectedRows()).length!=0){
for(int i=0;i<returnrow.length;i++){
if(user[returnrow[i]][0]!=null){
g++;
}
}
if(g!=0){
int sel=JOptionPane.showConfirmDialog(this,"确定删除这"+g+"个用户吗?","确认对话框",JOptionPane.YES_NO_OPTION);
if(sel==JOptionPane.YES_OPTION){
int count=0;
for(int i=0;i<usertable.getSelectedRowCount();i++){
if(user[returnrow[i]][0]!=null){
String temp="'"+user[returnrow[i]][0].toString().trim()+"'";
String del="DELETE FROM User_Info WHERE UserName = "+temp;
try{
int n=sql.executeUpdate(del);
System.out.println(""+n);
count++;
for(int j=0;j<3;j++){
user[returnrow[i]][j]=null;
}
}
catch(SQLException e2){
JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
}
}
}
audiourl=getClass().getResource("/sound/Declare.wav");
if(audiourl!=null){
audio=Applet.newAudioClip(audiourl);
audio.play();
}
usertable.repaint();
JOptionPane.showMessageDialog(this,"成功删除"+count+"个用户");
int t=userprogress.getValue()-count;
userprogress.setValue(t);
userprogress.setString("查询到"+t+"个用户");
}
else{
return;
}
}
else{
JOptionPane.showMessageDialog(this,"请选择要删除的用户");
}
}
else{
JOptionPane.showMessageDialog(this,"请选择要删除的用户");
}
}
else if(e.getSource()==viewbutton){
if(usertable.getSelectedRowCount()==1&&user[usertable.getSelectedRow()][0]!=null){
String queue="SELECT * FROM User_LoginLog WHERE UserName = "+"'"+user[usertable.getSelectedRow()][0]+"'";
for(int i=0;i<record.length;i++){
for(int j=0;j<2;j++){
record[i][j]=null;
}
}
try{
ResultSet rs=sql.executeQuery(queue);
int n=0;
while(rs.next()){
if(n==record.length){
Object[][] temp=record;
container.remove(recordpane);
record=new Object[temp.length*2][2];
recordtable=new JTable(record,recordcolumn);
recordpane=new JScrollPane(recordtable);
container.add(recordpane);
recordpane.setBounds(0,30,200,180);
for(int i=0;i<temp.length;i++){
for(int j=0;j<2;j++){
record[i][j]=temp[i][j];
}
}
}
for(int i=0;i<2;i++){
record[n][i]=rs.getString(i+2);
}
n++;
}
recordtable.repaint();
recordprogress.setValue(n);
recordprogress.setString("查询到"+n+"条记录");
recordlabel.setText(user[usertable.getSelectedRow()][0]+"登录数据库的记录");
}
catch(SQLException e3){
JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
}
}
else{
JOptionPane.showMessageDialog(this,"请选择要查询的用户");
}
}
else{
printjob=tool.getPrintJob(this,"OK",null);
if(printjob!=null){
graphics=printjob.getGraphics();
if(e.getSource()==printuserbutton){
usertable.paint(graphics);
}
else{
recordtable.paint(graphics);
}
graphics.dispose();
printjob.end();
}
else{
JOptionPane.showMessageDialog(this,"没有可以使用的打印机");
}
}
}
public void itemStateChanged(ItemEvent e){
if(e.getItemSelectable()==userbutton){
n=0;
}
else{
n=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -