import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Hashtable;
public class cardManage extends JFrame implements ActionListener, ItemListener, ListSelectionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
private int favorNum = 2;
private boolean isInput;
private JRadioButton addControl = new JRadioButton("添加"),
lookControl = new JRadioButton("查看"),
deleteControl = new JRadioButton("删除"),
favorButton = new JRadioButton("爱好"),
educationButton = new JRadioButton("学历");
private String strFavor3;
private String strFavor1,strFavor2;
private JButton addButton = new JButton("添加");
private JButton clearButton = new JButton("清空");
private JList store = new JList();//显示名片中所有的联系人;
private DefaultListModel model = new DefaultListModel(); //设置JList模式
private JPanel pWest = new JPanel(),
pSouth = new JPanel();
private JPanel pSouth1 = new JPanel();
private JPanel pSouth2 = new JPanel();
private Box boxWest = Box.createVerticalBox();//创建垂直箱式布局容器;
private Box pCenter = Box.createVerticalBox();//创建垂直箱式布局容器;
private JCheckBox favor1 = new JCheckBox("篮球");
private JCheckBox favor2 = new JCheckBox("音乐");
private Object[] item ={"大专","本科","高中","小学"};//学历
private JComboBox favor3 ;
private JScrollPane storeFather;
private JLabel jlabelName = new JLabel(" 姓名");
private JLabel jlabelAdress = new JLabel(" 地址");
private JLabel jlabelTelephone = new JLabel("联系电话");
private JLabel jlabelEmail = new JLabel("电子邮件");
private JTextField jtextName = new JTextField(11);
private JTextField jtextAdress = new JTextField(11);
private JTextField jtextTelephone = new JTextField(10);
private JTextField jtextEmail = new JTextField(10);
private JPanel namePanel = new JPanel();
private JPanel adressPanel = new JPanel();
private JPanel telephonePanel = new JPanel();
private JPanel emailPanel = new JPanel();
private JPanel buttonPanel = new JPanel();
private JPanel radioButton = new JPanel();
private JPanel button = new JPanel();
private Hashtable<String, People> peopleTable = new Hashtable<String, People>();//存储联系人;
//private People people = new People();
CardLayout cardLayout = new CardLayout();//卡片布局
private class People {
private String name= null;
private String adress = null;
private String telephone = null;
private String email = null;
private String[] favor = new String[favorNum];
private String education = null;
People(){
for(int i= 0;i<favorNum;++i){
this.favor[i]= new String();
}
}
public void setName(String name){
this.name=name;
}
public void setAdress(String adress){
this.adress=adress;
}
public void setTelephone(String telephone){
this.telephone=telephone;
}
public void setEmail(String email){
this.email=email;
}
public void setFavor(String[] favor){
for(int i = 0;i<favor.length;++i){
this.favor[i]=favor[i];
}
}
public void setEducation(String education){
this.education=education;
}
public String getName(){
return name;
}
public String getAdress(){
return adress;
}
public String getTelephone(){
return telephone;
}
public String getEmail(){
return email;
}
public String[] getFavor(){
return favor;
}
public String getEducation(){
return education;
}
}
private void setIsInput(boolean bool){//是所有输入框或按钮变成不可用或可用;
jtextName.setEditable(bool);
jtextAdress.setEditable(bool);
jtextTelephone.setEditable(bool);
jtextEmail.setEditable(bool);
addButton.setEnabled(bool);
clearButton.setEnabled(bool);
favorButton.setEnabled(bool);
educationButton.setEnabled(bool);
favor1.setEnabled(bool);
favor2.setEnabled(bool);
favor3.setEnabled(bool);
isInput = bool;
}
private void clearNull() {
jtextName.setText(null);// TODO Auto-generated method stub
jtextAdress.setText(null);
jtextTelephone.setText(null);
jtextEmail.setText(null);
}
private void showInformation(String str) {
People information =peopleTable.get(str);// TODO Auto-generated method stub
jtextName.setText(information.getName());
jtextAdress.setText(information.getAdress());
jtextTelephone.setText(information.getTelephone());
jtextEmail.setText(information.getEmail());
favor3.setSelectedItem(information.getEducation());
String f[] = new String[favorNum];
for(int i =0;i<favorNum;++i)
f[i] = new String();
if(f[0].equals(favor1.getText()))
favor1.setSelected(true);
else favor1.setSelected(false);
if(f[1].equals(favor2.getText()))
favor2.setSelected(true);
else favor2.setSelected(false);
}
private void addPeople() {
People people = new People();// TODO Auto-generated method stub
people.setName(jtextName.getText());
people.setAdress(jtextAdress.getText());
people.setTelephone(jtextTelephone.getText());
people.setEmail(jtextEmail.getText());
people.setEducation(strFavor3);
String[] str = new String[favorNum];
for(int i =0;i<favorNum;++i)
str[i] = new String();
str[0]=strFavor1;
str[1]=strFavor2;
people.setFavor(str);
String s1 = jtextName.getText();
try{
String s = s1.substring(0, 1);//取姓
peopleTable.put(s, people);//把数据按姓为键值存储到Hashtable
}catch(NullPointerException e){}
model.addElement(s1); //JList对数据的处理,是用它的model来完成的;
}
public void Init(){
ButtonGroup group1 = new ButtonGroup();//按钮组,实现单选功能;
group1.add(addControl);group1.add(lookControl);
ButtonGroup group2= new ButtonGroup();
group2.add(favorButton);group2.add(educationButton);
favor3 = new JComboBox(item);
storeFather = new JScrollPane(store);
pWest.setBorder(BorderFactory.createTitledBorder("选择操作"));
pWest.setSize(50,50);
storeFather.setBorder(BorderFactory.createTitledBorder("名片列表"));
pWest.add(addControl);pWest.add(lookControl);
boxWest.add(pWest);
boxWest.add(Box.createVerticalStrut(8));
boxWest.add(storeFather);
pSouth.setLayout(cardLayout);pSouth.setBorder(BorderFactory.createTitledBorder("名片附加信息"));
pSouth1.add(favor1);pSouth1.add(favor2);
pSouth2.add(favor3);
pSouth.add(pSouth1,"1");pSouth.add(pSouth2,"2");//将组件放到卡片布局容器里
//pCenter.setLayout(new GridLayout(6,2));//中心面板布局;
pCenter.setBorder(BorderFactory.createTitledBorder("名片详细信息"));
namePanel.setLayout(new FlowLayout());
adressPanel.setLayout(new FlowLayout());
telephonePanel.setLayout(new FlowLayout());
emailPanel.setLayout(new FlowLayout());
namePanel.add(jlabelName);namePanel.add(jtextName);
pCenter.add(namePanel);
pCenter.add(Box.createVerticalStrut(6));
adressPanel.add(jlabelAdress);adressPanel.add(jtextAdress);
pCenter.add(adressPanel);
pCenter.add(Box.createVerticalStrut(6));
telephonePanel.add(jlabelTelephone);telephonePanel.add(jtextTelephone);
pCenter.add(telephonePanel);
pCenter.add(Box.createVerticalStrut(6));
emailPanel.add(jlabelEmail);emailPanel.add(jtextEmail);
pCenter.add(emailPanel);
pCenter.add(Box.createVerticalStrut(6));
buttonPanel.add(addButton);buttonPanel.add(clearButton);
pCenter.add(Box.createVerticalStrut(6));
radioButton.setLayout(new BorderLayout());
buttonPanel.setLayout(new FlowLayout());
button.setLayout(new BorderLayout());
radioButton.add(favorButton,BorderLayout.NORTH);
radioButton.add(educationButton,BorderLayout.CENTER);
button.add(buttonPanel,BorderLayout.CENTER);
button.add(radioButton,BorderLayout.WEST);
pCenter.add(button);
pCenter.add(Box.createVerticalStrut(6));
pCenter.add(pSouth);
store.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置为单选;
store.setAlignmentY(0);//?????????????????????????????????????????????????????
store.setLayoutOrientation(JList.VERTICAL);//设置垂直放置
store.setVisibleRowCount(1);
store.setModel(model);
}
cardManage(){
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,450);
setTitle("名片信息管理");
Init();
// boxWest.setSize(50,50);
getContentPane().add(pCenter,BorderLayout.CENTER);
getContentPane().add(boxWest,BorderLayout.WEST);
addButton.addActionListener(this);
clearButton.addActionListener(this);
addControl.addActionListener(this);
lookControl.addActionListener(this);
favorButton.addActionListener(this);
educationButton.addActionListener(this);
favor1.addItemListener(this);
favor2.addItemListener(this);
favor3.addItemListener(this);
store.addListSelectionListener(this);
setIsInput(false);
}
public static void main(String[] args) {
cardManage card = new cardManage();// TODO Auto-generated method stub
card.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==addControl){
setIsInput(true);
}// TODO Auto-generated method stub
if(e.getSource()==lookControl){
setIsInput(false);
try {
String str = ((String) store.getSelectedValue()).substring(0,1);
showInformation(str);
}catch(NullPointerException e1){
JOptionPane.showConfirmDialog(null, "无任何联系人或未选择查看的联系人","提示框",JOptionPane.WARNING_MESSAGE);
}
}
if(e.getSource()==addButton){
if(!jtextName.getText().equals(null)&&!jtextTelephone.getText().equals(null))//判断姓名和电话是否为空
addPeople();
}
if(e.getSource()==clearButton){
clearNull();
}
if(e.getSource()==favorButton){//卡片布局的响应;
cardLayout.show(pSouth, "1");// TODO Auto-generated method stub
}
if(e.getSource()==educationButton){
cardLayout.show(pSouth, "2");
}
}
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getSource()==favor3){//下拉条的响应
strFavor3=String.valueOf(e.getItem());// TODO Auto-generated method stub
}
if(e.getSource()==favor1){
strFavor1 = favor1.getText();
}
if(e.getSource()==favor2){
strFavor2 = favor2.getText();
}
}
@Override
public void valueChanged(ListSelectionEvent e) {//选择JList内容的响应;
if(store.getSelectedIndex()!=-1){
}
}
}
分享到:
相关推荐
java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易...
java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏...
《JAVA简易学籍管理系统》是一款面向初级JAVA编程学习者设计的控制台应用程序,旨在帮助学习者理解基础的JAVA编程和软件系统设计。该系统通过简洁的代码和清晰的架构,展示了如何利用JAVA语言构建一个实用的学籍管理...
《Java版简易图书馆管理系统详解》 图书馆管理系统是一个典型的业务应用软件,它可以帮助图书馆进行书籍管理、读者服务等一系列操作。本文将深入探讨一个基于Java的小型图书馆管理系统,它利用了Java 2 Standard ...
在本项目中,"java开发简易人员管理系统" 是一个基于J2EE技术栈构建的应用,主要目的是实现对人员信息的有效管理和操作。系统采用MySQL作为后端数据库存储数据,提供了基本的增删查改功能,虽然规模不大,但包含了...
(Java毕业设计)简易java开源订销管理系统(Java毕业设计)简易java开源订销管理系统(Java毕业设计)简易java开源订销管理系统(Java毕业设计)简易java开源订销管理系统(Java毕业设计)简易java开源订销管理系统(Java毕业...
[信息办公]简易java开源订销管理系统_javainfo[信息办公]简易java开源订销管理系统_javainfo[信息办公]简易java开源订销管理系统_javainfo[信息办公]简易java开源订销管理系统_javainfo[信息办公]简易java开源订销...
Java 实现简易教务管理系统的代码 在本文中,我们将介绍Java实现简易教务管理系统的代码,该系统旨在提供一个基本的教务管理功能,包括学生、课程、教师等信息的管理。下面是该系统的主要知识点: 1. Java基础知识...
【简易人员管理系统(纯Java版)】是一款基于Java编程语言开发的、专注于人员信息管理的软件系统。系统设计简洁高效,旨在提供一个易用的平台,实现对人员的增删查改等基本操作,同时也引入了管理员账号的概念,以...
【Java简易订单管理系统详解】 Java简易订单管理系统是一个适合初级学习者使用的项目,它采用Java编程语言作为主要开发工具,结合Access数据库进行数据存储,旨在帮助初学者了解如何将编程技术应用到实际业务场景中...
【Java简易宾馆管理系统】是一个基于Java编程语言开发的软件应用,旨在帮助小型宾馆或酒店进行日常运营中的房间管理、预订管理、入住登记等任务。这个系统简化了传统的手动操作流程,提高了工作效率,降低了人为错误...
[信息办公]简易java开源订销管理系统_javainfo.rar[信息办公]简易java开源订销管理系统_javainfo.rar[信息办公]简易java开源订销管理系统_javainfo.rar[信息办公]简易java开源订销管理系统_javainfo.rar[信息办公]...
[信息办公]简易java开源订销管理系统_javainfo.zip[信息办公]简易java开源订销管理系统_javainfo.zip[信息办公]简易java开源订销管理系统_javainfo.zip[信息办公]简易java开源订销管理系统_javainfo.zip[信息办公]...
本系统名为“java简易图书管理系统”,其核心是利用Java语言中的对象输入输出流(ObjectInputStream和ObjectOutputStream)进行数据的持久化存储,实现图书信息的管理。下面我们将详细探讨这个系统的关键知识点。 ...
《简易的图书管理系统——JAVA实现详解》 在IT领域,图书管理系统是一种常见的应用,它用于组织、管理和检索图书馆中的书籍信息。本系统采用JAVA语言进行开发,为初学者提供了了解和学习JAVA编程以及软件工程实践的...
本文将详细讲解基于Java语言实现的超级简易图书管理系统,该系统涵盖了添加、删除、查询和浏览书籍这四个基本功能,并且需要与名为“book”的数据源进行连接。我们将深入探讨涉及的技术栈,包括Java编程、数据库操作...
在Java编程语言中实现一个简易计算器是一项常见的学习任务,它能帮助初学者更好地理解面向对象编程的概念、控制流程以及输入/输出操作。下面我们将详细探讨如何实现这样的计算器,并结合提供的"计算器"文件名称来...