通讯录的设计与实现--JavaJFrame
前言
<<<--------一起学习,共同进步-------->>>
一、通讯录的设计与实现
本系统是由Java代码设计实现,开发工具采用eclipse加1.8版本的JDK,数据库采用SQL server2012。系统的主要功能界面实现采用卡片式布局、开发模式有别于MVC。该系统的亮点应该是通过全局变量来提高系统对于内存空间的利用率暨一个变量反复多次的使用,减少了代码的迭代。下面是需要用到的一些类。
二、具体需要的类
1.Addressbook
import java.awt.Toolkit;
public class Addressbook {
public static void main(String[] args) {
// TODO Auto-generated method stub
windows win=new windows();
win.setTitle("\u901A\u8BAF\u5F55\u7684\u8BBE\u8BA1\u4E0E\u5B9E\u73B0");
win.setIconImage(Toolkit.getDefaultToolkit().getImage("E:\\eclipse\\Workspace\\Address book\\\u901A\u8BAF\u5F55"));
}
}
2.windows
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class windows extends Variable{
init init;
public windows() {
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
init=new init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//释放资源
}
}
3.init
import java.awt.Color;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.awt.event.*;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class init extends Variable {
public init(){
// TODO Auto-generated method stub
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
JLabel lblNewLabel = new JLabel("\u901A\u8BAF\u5F55");
lblNewLabel.setIcon(new ImageIcon("E:\\eclipse\\Workspace\\Address book\\\u901A\u8BAF\u5F55"));
lblNewLabel.setBounds(159, 10, 102, 79);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("\u8D26\u53F7\uFF1A");//账号标签
lblNewLabel_1.setBounds(79, 117, 54, 15);
contentPane.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("\u5BC6\u7801\uFF1A");//密码标签
lblNewLabel_2.setBounds(80, 166, 54, 15);
contentPane.add(lblNewLabel_2);
textField = new JTextField();//账号输入框
textField.setBounds(127, 113, 200, 21);
contentPane.add(textField);
textField.setColumns(10);
passwordField = new JPasswordField();//密码输入框
passwordField.setBounds(126, 164, 201, 21);
contentPane.add(passwordField);
btnNewButton = new JButton("\u767B\u5F55");//登录按钮
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Jdbc jdbc=new Jdbc();
boolean j=true;
try {
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM User1");
while(rs.next()){
if(textField.getText().equals(rs.getString(1))
&&String.valueOf( passwordField.getPassword()).equals(rs.getString(2))){
Enter enter=new Enter();
}
j=false;
break;
}
if(j) {
JOptionPane.showMessageDialog(contentPane,"账号或密码错误!");
}
con.close();
} catch (Exception e1) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(contentPane, e1);
}
}
});
btnNewButton.setBounds(80, 213, 93, 23);
contentPane.add(btnNewButton);
btnNewButton_1 = new JButton("\u6CE8\u518C");//注册按钮
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Register register=new Register();
}
});
btnNewButton_1.setBounds(233, 212, 93, 23);
contentPane.add(btnNewButton_1);
}
}
4.Enter
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
public class Enter extends Variable{
public Enter() {
contentPane.removeAll();//清空
contentPane.repaint();//动态更新
contentPane.revalidate();
card = new CardLayout();
panel = new JPanel(card);
panel.setBackground(Color.CYAN);
panel.setBounds(10, 10, 414, 215);
contentPane.add(panel);
panel_1 = new JPanel();
panel_1.setBackground(Color.WHITE);
panel_1.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0), 2)));
panel.add(panel_1, "name_1");
panel_1.setLayout(null);
btnNewButton = new JButton("\u4FEE\u6539\u8054\u7CFB\u4EBA");//第2次使用btnNewButton按钮-->修改联系人
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.first(panel);
card.next(panel);
card.next(panel);
card.next(panel);
}
});
btnNewButton.setBounds(86, 70, 120, 30);
panel_1.add(btnNewButton);
Add add=new Add();
Remove remove=new Remove();
Revise Revise=new Revise();
Enquire Enquire=new Enquire();
Look Look =new Look();
show show=new show();
btnNewButton = new JButton("\u65B0\u589E\u8054\u7CFB\u4EBA");//第3次使用btnNewButton按钮-->新增联系人
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.first(panel);
card.next(panel);
}
});
btnNewButton.setBounds(86, 28, 120, 30);
panel_1.add(btnNewButton);
btnNewButton = new JButton("\u5220\u9664\u8054\u7CFB\u4EBA");//第4次使用btnNewButton按钮-->删除联系人
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.first(panel);
card.next(panel);
card.next(panel);
}
});
btnNewButton.setBounds(230, 28, 120, 30);
panel_1.add(btnNewButton);
btnNewButton = new JButton("\u6309\u540D\u5B57\u67E5\u627E");//第5次使用btnNewButton按钮-->按名字查找
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.last(panel);
card.previous(panel);
card.previous(panel);
}
});
btnNewButton.setBounds(230, 70, 120, 30);
panel_1.add(btnNewButton);
btnNewButton = new JButton("\u53F7\u7801\u663E\u793A");//第8次使用btnNewButton按钮-->全部显示
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.last(panel);
}
});
btnNewButton.setBounds(86, 115, 120, 30);
panel_1.add(btnNewButton);
btnNewButton = new JButton("\u9000\u51FA");//第9次使用btnNewButton按钮-->退出
btnNewButton