package java_work;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.sql.SQLException;
import javax.swing.*;
public class Main extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
// 创建JPanel对象
private JPanel jp = new JPanel();
// 创建标签数组
private JLabel[] jlArray = { new JLabel("员工号"), new JLabel("姓 名"), new JLabel("邮 箱"),
new JLabel("电 话"), new JLabel("工 资"), new JLabel("部门号"), new JLabel("请输入要查询的条件,详情见帮助(F1)") };
// 创建按扭数组
private JButton[] jbArray = { new JButton("查找"), new JButton("清空") };
// 创建文本框以及密码框
private JTextField jtxtEmpID = new JTextField();
private JTextField jtxtName = new JTextField();
private JTextField jtxtEmail = new JTextField();
private JTextField jtxtPhNo = new JTextField();
private JTextField jtxtSalary = new JTextField();
private JTextField jtxtDepID = new JTextField();
//获得关键字
String[] keywords = new String[6];
OracleSQL orcl = new OracleSQL();
private JMenuBar menuBar;
private JMenu file;
private JMenu help;
private JMenuItem showItem;
private JMenuItem f_exit;
private JMenuItem F1_help;
private JMenuItem aboutme;
Object[][] res = null;
private boolean ifsearch = false;
// private JPasswordField jtxtPassword = new JPasswordField();
public Main() {
// 创建菜单栏
menuBar = new JMenuBar();
setJMenuBar(menuBar);// 在窗体上添加菜单栏
// 添加菜单项
file = new JMenu("文件(F)");
help = new JMenu ("帮助(H)");
menuBar.add(file);// 在菜单栏中添加菜单项
menuBar.add(help);
// 添加“打开”子菜单项
showItem = new JMenuItem("显示数据");
f_exit = new JMenuItem("退出");
F1_help = new JMenuItem("帮助");
aboutme = new JMenuItem("关于");
file.add(showItem);// 在菜单项中添加子菜单项
file.add(f_exit);
help.add(F1_help);
help.add(aboutme);
F1_help.setAccelerator(KeyStroke.getKeyStroke("F1"));
showItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
file.setMnemonic(KeyEvent.VK_F);
help.setMnemonic(KeyEvent.VK_H);
// 为“打开”菜单添加事件及监听
showItem.addActionListener(this);
f_exit.addActionListener(this);
F1_help.addActionListener(this);
aboutme.addActionListener(this);
// 设置JPanel的布局管理器
jp.setLayout(null);
// 对标签与按钮控件循环进行处理
for (int i = 0; i < 6; i++) {
// 设置标签与按扭的大小位置
jlArray[i].setBounds(30, 20 + i * 50, 80, 26);
// jbArray[i].setBounds(50 + i * 110, 130, 80, 26);
// 将标签与按扭添加到JPanel容器中
jp.add(jlArray[i]);
// jp.add(jbArray[i]);
// 为按钮注册动作事件监听器
// jbArray[i].addActionListener(this);
}
for (int i = 0; i < 2; i++)
{
// 设置按扭的大小位置
jbArray[i].setBounds(50 + i * 110, 330, 80, 26);
// 将按扭添加到JPanel容器中
jp.add(jbArray[i]);
// 为按钮注册动作事件监听器
jbArray[i].addActionListener(this);
}
// 设置文本框的大小位置
jtxtEmpID.setBounds(80, 20, 180, 30);
jtxtName.setBounds(80, 70, 180, 30);
jtxtEmail.setBounds(80, 120, 180, 30);
jtxtPhNo.setBounds(80, 170, 180, 30);
jtxtSalary.setBounds(80, 220, 180, 30);
jtxtDepID.setBounds(80, 270, 180, 30);
// 将文本框添加进JPanel容器
jp.add(jtxtEmpID);
jp.add(jtxtName);
jp.add(jtxtEmail);
jp.add(jtxtPhNo);
jp.add(jtxtSalary);
jp.add(jtxtDepID);
// 为文本框注册动作事件监听器
jtxtEmpID.addActionListener(this);
jtxtName.addActionListener(this);
jtxtEmail.addActionListener(this);
jtxtPhNo.addActionListener(this);
jtxtSalary.addActionListener(this);
jtxtDepID.addActionListener(this);
jtxtEmpID.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent event) {
char keyChar = event.getKeyChar();
if(" 0123456789".indexOf(keyChar) >= 0){
return;
}
// 当输入在限制之外,发出声音提示
Toolkit.getDefaultToolkit().beep();
// 限制之外的输入不出现在文本框中
event.consume();
}
});
jtxtSalary.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent event) {
char keyChar = event.getKeyChar();
if(" 0123456789".indexOf(keyChar) >= 0){
return;
}
// 当输入在限制之外,发出声音提示
Toolkit.getDefaultToolkit().beep();
// 限制之外的输入不出现在文本框中
event.consume();
}
});
jtxtDepID.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent event) {
char keyChar = event.getKeyChar();
if(" 0123456789".indexOf(keyChar) >= 0){
return;
}
// 当输入在限制之外,发出声音提示
Toolkit.getDefaultToolkit().beep();
// 限制之外的输入不出现在文本框中
event.consume();
}
});
// 设置密码框的大小位置
// jtxtPassword.setBounds(80, 70, 180, 30);
// 将密码框添加进JPanel容器
// jp.add(jtxtPassword);
// 设置密码框的回显字符
// jtxtPassword.setEchoChar('*');
// 为密码框注册动作事件监听器
// jtxtPassword.addActionListener(this);
// 设置用于显示状态的标签大小位置,并将其添加进JPanel容器
jlArray[6].setBounds(10,380,300,30);
jp.add(jlArray[6]);
// 将JPanel容器添加进窗体
this.add(jp);
// 设置窗体的标题、大小位置以及可见性
this.setTitle("员工信息检索");
this.setResizable(false);
this.setBounds(100,100,300,480);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭
}
public void keyTyped(KeyEvent event) {
char keyChar = event.getKeyChar();
if(" 0123456789".indexOf(keyChar) >= 0){
return;
}
// 当输入在限制之外,发出声音提示
Toolkit.getDefaultToolkit().beep();
// 限制之外的输入不出现在文本框中
event.consume();
}
// 实现ActionListener接口中的方法
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jtxtEmpID) {// 事件源为文本框
// 切换输入焦点到下一个文本框
jtxtName.requestFocus();
}
if (e.getSource() == jtxtName)
{
// 切换输入焦点到下一个文本框
jtxtEmail.requestFocus();
}
if (e.getSource() == jtxtEmail)
{
// 切换输入焦点到下一个文本框
jtxtPhNo.requestFocus();
}
if (e.getSource() == jtxtPhNo)
{
jtxtSalary.requestFocus();
}
if (e.getSource() == jtxtSalary)
{
jtxtDepID.requestFocus();
}
if (e.getSource() == jtxtDepID)
{
jbArray[0].requestFocus();
}
if (e.getSource() == jbArray[1]) {// 事件源为清空按扭
// 清空所有信息
jlArray[6].setText("请输入要查询的条件,详情见帮助(F1)");
jtxtEmpID.setText("");
jtxtName.setText("");
jtxtEmail.setText("");
jtxtPhNo.setText("");
jtxtSalary.setText("");
jtxtDepID.setText("");
// jtxtPassword.setText("");
// 将输入焦点设置到员工号文本框
jtxtEmpID.requestFocus();
}
if (e.getSource() == jbArray[0]) {
// 事件源为查找按钮
keywords[0] = jtxtEmpID.getText();
keywords[1] = jtxtName.getText();
keywords[2] = jtxtEmail.getText();
keywords[3] = jtxtPhNo.getText();
keywords[4] = jtxtSalary.getText();
keywords[5] = jtxtDepID.getText();
orcl.UpdateSql(keywords);
try {
res = orcl.getConnection();
jlArray[6].setText("数据查询成功,可选择文件->显示数据来显示");
ifsearch = true;
} catch (SQLException e1) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(this,"数据查询失败!",
"警告",JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
}
// if ()
// {
//
// }
}
if (e.getSource() == showItem)
{
jlArray[6].setText("请输入要查询的条件,详情见帮助(F1)");
if (ifsearch)
{
Tableframe tf = new Tableframe(res);
}
else
{
JOptionPane.showMessageDialog(this,"还未进行查询!",
"警告",JOptionPane.ERROR_MESSAGE);
}
}
if (e.getSource() == f_exit)
{
Sys