📄 systemoperation.java
字号:
package lib_source;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.border.*;
public class SystemOperation extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final int WIDTH = 450;
public static final int HEIGHT = 418;
private JPanel DeckPanel;
private CardLayout Dealer;
JLabel[][] label;
JTextField[][] text1 = new JTextField[2][];
JComboBox[] comboBox = new JComboBox[2];
JTextField[][] text2 = new JTextField[3][];
JPasswordField[] password = new JPasswordField[3];
JFileChooser[] fileChooser = new JFileChooser[2]; // 文件选择器
JTextField[] txt = new JTextField[4];
JButton[] Button;
JButton[] button;
JButton[][] button1;
JButton[][] button2;
String dbURL = "jdbc:odbc:Student2007";
String user = "devon";
String pw = "book";
String combo = "";
int SelectValue;
public SystemOperation() {
super("系统操作");
setResizable(false);
try { // 设置外观
UIManager.setLookAndFeel(UIManager
.getCrossPlatformLookAndFeelClassName());// getSystemLookAndFeelClassName());
} catch (Exception e) {
}
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
setSize(WIDTH, HEIGHT);
Container content = getContentPane();
content.setBackground(Color.LIGHT_GRAY);
content.setLayout(new BorderLayout());
DeckPanel = new JPanel();
Dealer = new CardLayout();
DeckPanel.setLayout(Dealer);
JPanel sPanel;
JPanel pane1;
JPanel mPanel = new JPanel();
JPanel tempPanel;
JPanel jPanel = new JPanel();
jPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
String[] str1 = { "图书库操作 ", "读者库操作 ", "数据统计 ", "系统设置 ",
"数据备份 ", "数据恢复 ", "口令更改 ", "锁定屏幕 ", "返回主界面 ",
"退出程序 " };
button = new JButton[str1.length];
for (int i = 0; i < 10; i++) {
button[i] = new JButton(str1[i]);
button[i].addActionListener(this);
if (i == 7)
jPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource("images/CS战队.jpg")), JLabel.CENTER));
jPanel.add(button[i]);
}
content.add(jPanel, BorderLayout.WEST);
String[][] str2 = {
{ "图书序号 ", "图书编号 ", "图书书名 ", "图书作者 ", "图书出版社",
"图书单价 ", "图书摘要 ", "图书分类 ", "图书状态 " },
{ "读者编号 ", "读者识别号", "读者姓名 ", "读者权限 ", "联系方法 ",
"电话号码 ", "电子邮件 " } };
String[] str3 = { " 清除 ", " 确定 ", " 上移 ", " 下移 ",
" 添加 ", " 删除 ", " 修改 " };
String[] str5 = { "images/Dogmax.jpg", "images/流水.jpg" };
String[][] str7 = {
{ "在馆 ",
"借出 " },
{ "读者 ",
"管理员 " } };
label = new JLabel[str2.length][];
text1 = new JTextField[str2.length][];
for (int i = 0; i < str2.length; i++) {
label[i] = new JLabel[str2[i].length];
text1[i] = new JTextField[str2[i].length];
comboBox[i] = new JComboBox(str7[i]);
comboBox[i].setSize(200, 50);
comboBox[i].setEditable(true);
for (int j = 0; j < str2[i].length; j++) {
label[i][i] = new JLabel(str2[i][j]);
text1[i][j] = new JTextField(13);
}
}
button1 = new JButton[str2.length][];
for (int j = 0; j < str2.length; j++) {
pane1 = new JPanel();
pane1.setLayout(new BorderLayout());
mPanel = new JPanel();
mPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
label = new JLabel[str2.length][str2[j].length];
for (int i = 0; i < str2[j].length; i++) {
sPanel = new JPanel();
sPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
label[j][i] = new JLabel(str2[j][i]);
text1[j][i].setBorder(new BevelBorder(BevelBorder.LOWERED));
text1[j][i].addKeyListener(new BookConfirmKey());
sPanel.add(label[j][i]);
if (j == 0 & i == str2[j].length - 1)
sPanel.add(comboBox[j]);
else if (j == 1 & i == 3)
sPanel.add(comboBox[j]);
else
sPanel.add(text1[j][i]);
mPanel.add(sPanel);
if (i == str2[j].length - 1 & j == 1) {
mPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource("images/兜风之海边篇.JPG")),
JLabel.CENTER));
}
pane1.add(mPanel, BorderLayout.CENTER);
}
tempPanel = new JPanel();
tempPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
tempPanel.setLayout(new BoxLayout(tempPanel, BoxLayout.Y_AXIS));
jPanel = new JPanel();
jPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
jPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource(str5[j])), JLabel.CENTER));
button1[j] = new JButton[str3.length];
for (int i = 0; i < str3.length; i++)
button1[j][i] = new JButton(str3[i]);
if (j == 0 | j == 1) {
button1[j][0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
for (int i = 0; i < text1.length; i++)
for (int j = 0; j < text1[i].length; j++) {
text1[i][j].setText("");
comboBox[i].setSelectedItem("");
}
}
});
}
if (j == 0) {
button1[j][1].addActionListener(new BookConfirm());
button1[j][2].addActionListener(new BookUp());
button1[j][3].addActionListener(new BookDown());
button1[j][4].addActionListener(new BookAdd());
button1[j][5].addActionListener(new BookDelete());
button1[j][6].addActionListener(new BookChange());
}
if (j == 1) {
button1[j][1].addActionListener(new ReaderConfirm());
button1[j][2].addActionListener(new ReaderUp());
button1[j][3].addActionListener(new ReaderDown());
button1[j][4].addActionListener(new ReaderAdd());
button1[j][5].addActionListener(new ReaderDelete());
button1[j][6].addActionListener(new ReaderChange());
}
for (int i = 0; i < str3.length; i++)
tempPanel.add(button1[j][i]);
jPanel.add(tempPanel);
pane1.add(jPanel, BorderLayout.EAST);
if (j == 0)
DeckPanel.add("图书库操作 ", pane1);
else if (j == 1)
DeckPanel.add("读者库操作 ", pane1);
}
String[][] str4 = { { "图书总量 ", "读者总量 ", "在库图书 " },
{ "读者号码 ", "借书本数 ", "借阅时间 " },
{ "操作员号码 ", "原口令 ", "新口令 ", "确认新口令 " } };
String[][] s = { { "刷新", "清除", "取消" }, { "更改", "清除", "取消" },
{ "更改", "清除", "取消" } };
String[] s1 = { "images/CS战队1.jpg", "images/CS战队2.jpg",
"images/CS战队3.jpg", "images/风景04.jpg", "images/宽屏壁纸3.jpg" };
String[] s2 = { "images/Windows1.JPG", "images/呵护我们的QQ家园.JPG",
"images/qq情人.JPG", "images/幸福.JPG", "images/梦幻VS魔幻.JPG",
"images/风一样的年华.JPG" };
label = new JLabel[str4.length][];
text2 = new JTextField[str4.length][];
button2 = new JButton[str4.length][];
for (int i = 0; i < str4.length; i++) {
label[i] = new JLabel[str4[i].length];
text2[i] = new JTextField[str4[i].length];
for (int j = 0; j < str4[i].length; j++) {
label[i][j] = new JLabel(str4[i][j]);
text2[i][j] = new JTextField(20);
if (i == 0)
text2[i][j].setEditable(false);
}
}
for (int i = 0; i < password.length; i++)
password[i] = new JPasswordField(20);
for (int j = 0; j < str4.length; j++) {
pane1 = new JPanel();
pane1.setLayout(new BorderLayout());
mPanel = new JPanel();
mPanel.setLayout(new FlowLayout());
mPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
for (int i = 0; i < str4[j].length; i++) {
sPanel = new JPanel();
sPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
text2[j][i].setBorder(new BevelBorder(BevelBorder.LOWERED));
sPanel.add(label[j][i]);
if (j == 2 & i > 0) {
password[i - 1].setBorder(new BevelBorder(
BevelBorder.LOWERED));
sPanel.add(password[i - 1]);
} else {
sPanel.add(text2[j][i]);
}
mPanel.add(sPanel);
}
tempPanel = new JPanel();
tempPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
tempPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource(s2[j])), JLabel.CENTER));
button2[j] = new JButton[s[j].length];
for (int i = 0; i < s.length; i++)
button2[j][i] = new JButton(s[j][i]);
if (j == 0)
button2[j][0].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbURL,
user, pw);
Statement st = con.createStatement();
ResultSet[] rs = new ResultSet[2];
String[] sqlStr = { "SELECT * FROM Book ",
"SELECT * FROM Reader " };
int[] count = new int[3];
for (int i = 0; i < sqlStr.length; i++) {
rs[i] = st.executeQuery(sqlStr[i]);
while (rs[i].next()) {
if (i == 0) {
count[i]++;
if (rs[i].getString("图书状态").trim()
.equals("在馆"))
count[i + 2]++;
} else {
count[1]++;
}
}
}
for (int i = 0; i < text2[0].length; i++) {
text2[0][i].setText(Integer.toString(count[i]));
}
con.close();
} catch (Exception ex) {
JOptionPane.showMessageDialog(SystemOperation.this,
"数据库连接错误!\n" + ex);
ex.printStackTrace();
}
}
});
if (j == 1)
button2[j][0].addActionListener(new SystemChange());
if (j == 2)
button2[j][0].addActionListener(new PasswordChange());
button2[j][1].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
for (int i = 0; i < text2.length; i++)
for (int j = 0; j < text2[i].length; j++)
text2[i][j].setText("");
for (int i = 0; i < password.length; i++)
password[i].setText("");
}
});
button2[j][2].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
Dealer.show(DeckPanel, "图书库操作 ");
}
});
for (int i = 0; i < s.length; i++)
tempPanel.add(button2[j][i]);
tempPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource(s2[5 - j])), JLabel.CENTER));
mPanel.add(tempPanel);
mPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource(s1[j])), JLabel.CENTER));
pane1.add(mPanel, BorderLayout.CENTER);
if (j == 0)
DeckPanel.add("数据统计", pane1);
else if (j == 1)
DeckPanel.add("系统设置", pane1);
else
DeckPanel.add("口令更改", pane1);
}
for (int i = 0; i < fileChooser.length; i++) {
fileChooser[i] = new JFileChooser(); // 实例化文件选择器
fileChooser[i].setApproveButtonText("确定");
fileChooser[i].setDialogTitle("选择文件");
}
for (int i = 0; i < txt.length; i++)
txt[i] = new JTextField(16);
String[] str6 = { "浏览", "浏览", "备份", "清除", "取消", "浏览", "浏览", "恢复",
"清除 ", "取消" };
Button = new JButton[str6.length];
for (int i = 0; i < str6.length; i++) {
Button[i] = new JButton(str6[i]);
if (i == 0 | i == 1)
Button[i].addActionListener(new SelectFileListener1()); // 设置选择文件的事件处理
if (i == 5 | i == 6)
Button[i].addActionListener(new SelectFileListener2()); // 设置选择文件的事件处理
if (i == 2)
Button[i].addActionListener(new ActionListener() { // 拷贝按钮事件处理
public void actionPerformed(ActionEvent event) {
String sourceFile = txt[0].getText(); // 得到源文件路径
String targetFile = txt[1].getText(); // 得到目标文件路径
if (sourceFile.equals("")
| targetFile.equals(""))
JOptionPane.showMessageDialog(
SystemOperation.this,
"源文件或目标文件的地址不能为空!");
else if (copy(sourceFile, targetFile)) { // 拷贝文件
JOptionPane.showMessageDialog(
SystemOperation.this, "文件已成功备份!"); // 显示拷贝成功信息
} else {
JOptionPane.showMessageDialog(
SystemOperation.this, "文件备份失败!"); // 发生错误
}
}
});
if (i == 4 | i == 9)
Button[i].addActionListener(new ActionListener() { // 拷贝按钮事件处理
public void actionPerformed(ActionEvent event) {
Dealer.show(DeckPanel, "图书库操作 ");
}
});
if (i == 3)
Button[3].addActionListener(new ActionListener() { // 拷贝按钮事件处理
public void actionPerformed(ActionEvent event) {
txt[0].setText("");
txt[1].setText("");
}
});
if (i == 7)
Button[i].addActionListener(new ActionListener() { // 拷贝按钮事件处理
public void actionPerformed(ActionEvent event) {
String sourceFile = txt[2].getText(); // 得到源文件路径
String targetFile = txt[3].getText(); // 得到目标文件路径
if (sourceFile.equals("")
| targetFile.equals(""))
JOptionPane.showMessageDialog(
SystemOperation.this,
"源文件或目标文件的地址不能为空!");
else if (copy(sourceFile, targetFile)) { // 拷贝文件
JOptionPane.showMessageDialog(
SystemOperation.this, "文件已成功恢复!"); // 显示拷贝成功信息
} else {
JOptionPane.showMessageDialog(
SystemOperation.this, "文件恢复失败!"); // 发生错误
}
}
});
if (i == 8)
Button[i].addActionListener(new ActionListener() { // 拷贝按钮事件处理
public void actionPerformed(ActionEvent event) {
txt[2].setText("");
txt[3].setText("");
}
});
}
mPanel = new JPanel();
mPanel.setLayout(new FlowLayout());
mPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
jPanel = new JPanel();
jPanel.setLayout(new FlowLayout());
jPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
jPanel.add(new JLabel("源 文 件"));
jPanel.add(txt[0]);
jPanel.add(Button[0]);
mPanel.add(jPanel);
jPanel = new JPanel();
jPanel.setLayout(new FlowLayout());
jPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
jPanel.add(new JLabel("目标文件"));
jPanel.add(txt[1]);
jPanel.add(Button[1]);
mPanel.add(jPanel);
jPanel = new JPanel();
jPanel.setLayout(new FlowLayout());
jPanel.setBorder(new BevelBorder(BevelBorder.RAISED));
jPanel.add(new JLabel(new ImageIcon(ClassLoader
.getSystemResource("images/双扣.JPG")), JLabel.CENTER));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -