主交互界面截图和代码:
package com;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class M {
public static void main(String[] args) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
Guanli m = new Guanli();
}
}
class Guanli extends JFrame{
JButton b1;
JButton b2;
public Guanli(){
setSize(550,370);
Toolkit tk=getToolkit();
Dimension d1=tk.getScreenSize();
int w=(int)d1.getWidth();
int h=(int)d1.getHeight();
setLocation(w/2-550/2, h/2-370/2);
setVisible(true);
setTitle("信息管理系统");
Container cp=getContentPane();
((JPanel)cp).setOpaque(false);
cp.setLayout(null);
JLabel imgLable=new JLabel();
JLabel j2=new JLabel("***欢迎登陆信息管理系统***");
JLabel j1=new JLabel("~~请在左侧选择所做的操作~~");
JButton b1=new JButton("查询");
JButton b2=new JButton("取消");
JButton b3=new JButton("修改");
JButton b4=new JButton("增添");
JButton b5=new JButton("删除");
JTextArea t3=new JTextArea(150,150);
cp.add(j2);
j2.setBounds(220,110,190,25);
cp.add(j1);
j1.setBounds(220,150,190,25);
cp.add(b1);
b1.setBounds(0, 70, 90, 25);
cp.add(b2);
b2.setBounds(250, 250, 70, 25);
cp.add(b4);
b4.setBounds(0,110,90,25);
cp.add(b3);
b3.setBounds(0,150,90,25);
cp.add(b5);
b5.setBounds(0,190,90,25);
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if(e.getActionCommand().equals("取消")){
System.exit(0);
}
}
});
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
new Select();
}
});
b3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
new Update();
}
});
b4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
new Insert();
}
});
b5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
new Delete();
}
});
}
}
比如更新/改,先看更新/改的代码,能做出来这一个应该就能做出来其他3个:
package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.awt.FileDialog;
import java.awt.Font;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.io.FileOutputStream;
import javax.swing.JPasswordField;
class UpdateStu {
// 获取数据库连接
private Connection conn;
public Connection getConn() {
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载数据库驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/study 0027?useUnicode=true&characterEncoding=utf-8&useSSL=false"; // 连接数据库URL
String userName = "root"; // 连接数据库的用户名
String passWord = "1234"; // 连接数据库密码
try {
conn = DriverManager.getConnection(url, userName, passWord); // 获取数据库连接
if (conn != null) {
}
} catch (SQLException e) {
e.printStackTrace();
}
return conn; // 返回Connection对象
}
//定义更新tb_stu表方法
public void updateStu(Stu stu){
conn = getConn(); //获取数据库连接
try {
PreparedStatement statement = conn.prepareStatement("update student set name = ?,sex = ?,grade = ?,specialty = ? where id = ?");//定义更新SQL语句
statement.setString(1, stu.getName()); //设置预处理语句参数
statement.setString(2, stu.getSex());
statement.setString(3,stu.getGrade());
statement.setString(4, stu.getSpecialty());
statement.setInt(5, stu.getId());
statement.execute(); //执行预处理语句
} catch (Exception e) {
e.printStackTrace();
}
}
//定义查询所有同学信息方法
public List selectStu(){
conn = getConn();
Statement statement;
List list = new ArrayList<Stu>();
try {
statement = conn.createStatement();
ResultSet rest = statement.executeQuery("select * from student");
while(rest.next()){
Stu stu = new Stu();
stu.setId(rest.getInt(1));
stu.setName(rest.getString(2));
stu.setGrade(rest.getString("grade"));
stu.setSex(rest.getString("sex"));
stu.setSpecialty(rest.getString(5));
list.add(stu);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
//定义按照指定编号查询学生信息方法
public Stu selectStu(int id){
conn = getConn();
Statement statement;
Stu stu = new Stu();
try {
statement = conn.createStatement();
ResultSet rest = statement.executeQuery("select * from student where id = "+id);
while(rest.next()){
stu.setId(rest.getInt(1));
stu.setName(rest.getString(2));
stu.setGrade(rest.getString("grade"));
stu.setSex(rest.getString("sex"));
stu.setSpecialty(rest.getString(5));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return stu;
}
}
class UpdateFrame extends JFrame {
private JPanel contentPane;
private JTextField idTextField;
private JTextField nameTextField;
private JTextField gradeTextField;
private JTextField specialityTextField;
private Stu stu = null;
private JComboBox sexComboBox;
/**
* Create the frame.
*/
public UpdateFrame() {
setBounds(100, 100, 409, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
File file = new File("file.txt");
try {
FileInputStream fin = new FileInputStream(file);
int count = fin.read();
System.out.println(count);
UpdateStu updateStu = new UpdateStu();
stu = updateStu.selectStu(count);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JPanel panel = new JPanel();
panel.setBounds(0, 0, 393, 262);
contentPane.add(panel);
panel.setLayout(null);
JLabel IDLabel = new JLabel("编号:");
IDLabel.setBounds(55, 21, 54, 15);
panel.add(IDLabel);
idTextField = new JTextField();
idTextField.setText(stu.getId()+"");
idTextField.setEditable(false);
idTextField.setBounds(101, 18, 216, 21);
panel.add(idTextField);
idTextField.setColumns(10);
JLabel nameLabel = new JLabel("姓名:");
nameLabel.setBounds(55, 57, 48, 15);
panel.add(nameLabel);
nameTextField = new JTextField();
nameTextField.setText(stu.getName());
nameTextField.setBounds(101, 54, 216, 21);
panel.add(nameTextField);
nameTextField.setColumns(10);
JLabel seLlabel = new JLabel("性别:");
seLlabel.setBounds(55, 95, 54, 15);
panel.add(seLlabel);
String sex[] = new String[]{"男","女"};
sexComboBox = new JComboBox(sex);
sexComboBox.setSelectedItem(stu.getSex());
sexComboBox.setBounds(101, 92, 67, 21);
panel.add(sexComboBox);
JLabel gradeLabel = new JLabel("年级:");
gradeLabel.setBounds(55, 132, 54, 15);
panel.add(gradeLabel);
gradeTextField = new JTextField();
gradeTextField.setText(stu.getGrade());
gradeTextField.setBounds(101, 129, 216, 21);
panel.add(gradeTextField);
gradeTextField.setColumns(10);
JLabel specialityLabel = new JLabel("专业:");
specialityLabel.setBounds(55, 175, 54, 15);
panel.add(specialityLabel);
specialityTextField = new JTextField();
specialityTextField.setText(stu.getSpecialty());
specialityTextField.setBounds(102, 172, 215, 21);
panel.add(specialityTextField);
specialityTextField.setColumns(10);
JButton updateButton = new JButton("修改");
updateButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
do_updateButton_actionPerformed(arg0);
}
});
updateButton.setBounds(101, 214, 67, 23);
panel.add(updateButton);
JButton closeButton = new JButton("关闭");
closeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
do_closeButton_actionPerformed(arg0);
}
});
closeButton.setBounds(208, 214, 67, 23);
panel.add(closeButton);
}
//修改按钮的单击事件
protected void do_updateButton_actionPerformed(ActionEvent arg0) {
String name = nameTextField.getText();
String sex = sexComboBox.getSelectedItem().toString();
String grade = gradeTextField.getText();
String speciality = specialityTextField.getText();
stu.setName(name);
stu.setSex(sex);
stu.setGrade(grade);
stu.setSpecialty(speciality);
UpdateStu updateStu = new UpdateStu();
updateStu.updateStu(stu);
JOptionPane.showMessageDialog(getContentPane(),
"数据修改成功!", "信息提示框", JOptionPane.WARNING_MESSAGE);
}
//关闭按钮的单击事件
protected void do_closeButton_actionPerformed(ActionEvent arg0) {
this.setVisible(false);
}
}
public class Update extends JFrame {
private JPanel contentPane;
private JTable table;
private LocalTableModel model = new LocalTableModel();
private UpdateStu updateStu = new UpdateStu();
private JPasswordField passwordField;
/**
* Launch the application.
*/
/**
* Create the frame.
*/
public Update() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 434, 262);
contentPane.add(panel);
panel.setLayout(null);
JLabel messageLabel = new JLabel("更新指定记录");
messageLabel.setFont(new Font("华文琥珀", Font.BOLD | Font.ITALIC, 18));
messageLabel.setBounds(136, 22, 181, 33);
panel.add(messageLabel);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(27, 65, 380, 145);
panel.add(scrollPane);
table = new JTable(model);
List list = updateStu.selectStu();
for(int i = 0;i<list.size();i++){
Stu stu = (Stu)list.get(i);
model.addRow(new Object[] { stu.getId(), stu.getName(),
stu.getSex(),stu.getSpecialty(),stu.getGrade()});
}
scrollPane.setViewportView(table);
passwordField = new JPasswordField();
scrollPane.setColumnHeaderView(passwordField);
JButton updateButton = new JButton("修改");
updateButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
do_updateButton_actionPerformed(arg0);
}
});
updateButton.setBounds(113, 220, 76, 23);
panel.add(updateButton);
JButton closeButton = new JButton("关闭");
closeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
do_closeButton_actionPerformed(arg0);
}
});
closeButton.setBounds(228, 220, 76, 23);
panel.add(closeButton);
}
//修改按钮的单击事件
protected void do_updateButton_actionPerformed(ActionEvent arg0) {
int row = table.getSelectedRow();
File file = new File("file.txt");
try {
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
out.write((row+1));
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
UpdateFrame updateFrame = new UpdateFrame();
updateFrame.setVisible(true);
System.out.println(table.getSelectedRow());
}
//关闭按钮的单击事件
protected void do_closeButton_actionPerformed(ActionEvent arg0) {
System.exit(0);
}
}
增删查改各自加上主程序的话都可以正常运行、实现功能。所以想给它们加上一个总界面(总框架),这样实现4个操作更方便、界面更友好。但总界面做出来后好像联系不上4个操作(按钮没反应),感觉是不是少些了什么?(新学java!如果这个问题有点憨的话,别嫌弃俺菜!认真问!)