⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 communicationbook.java

📁 用java做的通信录 可以显示个人详细信息 使用mysql数据库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		 builder.add(companyNameLabel,cc.xy(1,1));
		 builder.add(companyNameField,cc.xyw(3,1,5));
		 builder.add(countryLabel,cc.xy(1,3));
		 builder.add(countryField,cc.xy(3,3));
		 builder.add(provinceLabel,cc.xy(5,3));
		 builder.add(provinceField,cc.xy(7,3));
		 builder.add(townLabel,cc.xy(1,5));
		 builder.add(townField,cc.xy(3,5));
		 builder.add(postNumLabel,cc.xy(5,5));
		 builder.add(postNumField,cc.xy(7,5));
		 builder.add(addressLabel,cc.xy(1,7));
		 builder.add(addressField,cc.xyw(3,7,5));
		 builder.add(companyPhoneLabel,cc.xy(1,9));
		 builder.add(companyPhoneField,cc.xyw(3,9,5));
		 builder.add(companyFaxLabel,cc.xy(1,11));
		 builder.add(companyFaxField,cc.xyw(3,11,5));
		 builder.add(companyWebSiteLabel,cc.xy(1,13));
		 builder.add(companyWebsiteField,cc.xyw(3,13,5));
		 builder.add(positionLabel,cc.xy(1,15));
		 builder.add(positionField,cc.xy(3,15));
		 builder.add(departmentLabel,cc.xy(5,15));
		 builder.add(departmentField,cc.xy(7,15));
		 builder.add(otherLabel,cc.xy(1,17));
		 builder.add(otherArea,cc.xywh(2,17,6,2));
		 
		return builder.getPanel();
	}
	
}

//-------------------------------------------------------------------------
class LeftControlPane implements ActionListener,ListSelectionListener
{
	 private JLabel searchKeyWordTypeLabel;//查询关键字类型标签
	 private JLabel sortTypeLabel;//查询结果排序方式标签
	 private JLabel searchKeyWordLabel;//查询关键字标签
	 private JLabel captionLabel;//主题标签;
	 
	 private JComboBox searchKeyWordTypeBox;//查询关键字类型选择框
	 private JComboBox sortTypeBox;//查询结果排序方式选择框
	 
	 private JTextField searchKeyWordField;//查询关键字文本框
	 
	 private JButton searchButton;//查询按钮
	 private JButton addButton;//添加按钮;
	 
	 private JTable table; //显示查询结果的表格控件
	 private JScrollPane tablePane;//放置表格控件的Panel容器;
	 private MyTableModel myTableModel;//表格控件的数据模型类;
	 //private RowSorter<TableModel> sorter;//表格控件中用于对查询结果排序的类;
	 private String sqlstr;//程序初始化时的查询语句
	 private String sqlstrForCount;//统计查询结果个数的查询语句;
	 private ListSelectionModel listSelectionModel;//表格控件的选择模型类
	 private OperateToDetailInfor operToDetailInfor;//对详细信息进行操作的类
	 
	 //private TablePane resultTablePane;
	 //private OperateToDetailInfor operToDetailInfor; 
	 
	 public LeftControlPane(OperateToDetailInfor oper)
	 {
	 	operToDetailInfor=oper;
	 }
	 
	 private void initComponent()
	 {
	 	  //String[] items={"首拼","姓名","关系","生日","手机","家庭电话","单位电话"};
	 	  String[] items={"姓名","关系","生日","手机","家庭电话","单位电话"};
	 	  searchKeyWordTypeLabel=new JLabel("关键字类型");
	 	  sortTypeLabel=new JLabel("结果排序类型");
	 	  searchKeyWordLabel=new JLabel("关键字");
	 	  captionLabel=new JLabel("Bear的通讯录");
	 	  
	 	  searchKeyWordTypeBox=new JComboBox(items);
	 	  sortTypeBox=new JComboBox(items);
	 	  
	 	  searchKeyWordField=new JTextField(10);
	 	  searchButton=new JButton("查询");
	 	  addButton=new JButton("添加");  
	 	  
	 	  searchKeyWordField.setText("全部");
	 	  
	 	  searchButton.addActionListener(this);
	 	  //-----------------------------------------------------------------------------------------------------------
	 	  sqlstr="select 姓名,性别,关系,生日,手机,爱好 from personinfor";
		  sqlstrForCount="select  * from personinfor";
      myTableModel=new MyTableModel(sqlstr,sqlstrForCount);
      //sorter=new TableRowSorter<TableModel>(myTableModel);
      table=new JTable(myTableModel);
      //table.setRowSorter(sorter);
      //table.setAutoCreateRowSorter(true);
     
     //table.setPreferredScrollableViewportSize(new Dimension(500,70));
     // table.setFillsViewportHeight(true);
      tablePane=new JScrollPane(table);
      listSelectionModel=table.getSelectionModel();
      listSelectionModel.addListSelectionListener(this);
      listSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
      table.setSelectionModel(listSelectionModel);
	 	  
	 }
	 
	 public JComponent buildPanel()
	 {
	 	   initComponent();
	 	   FormLayout layout=new FormLayout(
	 	    "2cm,right:pref,3dlu,3cm,1cm,right:pref,3dlu,3cm,2cm",
	 	    "p,3dlu,p,1cm,12cm");
	 	    
	 	    PanelBuilder builder=new PanelBuilder(layout);
	 	    builder.setDefaultDialogBorder();
	 	    
	 	    CellConstraints cc=new CellConstraints();
	 	    builder.add(searchKeyWordTypeLabel,cc.xy(2,1));
	 	    builder.add(searchKeyWordTypeBox,cc.xy(4,1));
	 	    builder.add(searchKeyWordLabel,cc.xy(6,1));
	 	    builder.add(searchKeyWordField,cc.xy(8,1));
	 	    //builder.add(sortTypeLabel,cc.xy(2,3));
	 	    //builder.add(sortTypeBox,cc.xy(4,3));
	 	    builder.add(searchButton,cc.xy(6,3));
	 	    //builder.add(addButton,cc.xy(8,3));
	 	    builder.add(tablePane,cc.xyw(1,5,9));
	 	    return builder.getPanel();
	 }
	 
	 public void actionPerformed(ActionEvent e)
	 {
	 	String searchType=String.valueOf(searchKeyWordTypeBox.getSelectedItem());
	 	String searchKeyWords=searchKeyWordField.getText();
	 	String sqlStr;
	 	String sqlStrForCount;
	 	
	 	if(searchKeyWords.equals("全部"))
	 	{
	 		sqlStr="select 姓名,性别,关系,生日,手机,爱好 from personinfor";
	 		sqlStrForCount="select count(*)from personinfor";
	 	}
	 	else
	 	{
	 	sqlStr="select 姓名,性别,关系,生日,手机,爱好 from personinfor where "+searchType+"='"+searchKeyWords+"'";
	 	sqlStrForCount="select count(*)from personinfor where "+searchType+"='"+searchKeyWords+"'";
	  }
	 	TableUpdate(sqlStr,sqlStrForCount);
	 }
	 public void TableUpdate(String sqlStr,String sqlStrForCount)
	 {
		 myTableModel=new MyTableModel(sqlStr,sqlStrForCount);
		 table.setModel(myTableModel);
	//	 table.setAutoCreateRowSorter(true);
		 //table.validate();
		 //table.repaint();
	 }
	
	 public void valueChanged(ListSelectionEvent e)
	 {
	 	 if(table.getSelectedRowCount()!=0)
	 	 {
	 	 	 int selectRowIndex=table.getSelectedRow();
		   if(e.getValueIsAdjusting())
		  {
			  String personName=(String)table.getValueAt(selectRowIndex,0);
			  operToDetailInfor.setName(personName);
			  operToDetailInfor.DisplayDetailInfor();
		 }
		}
	 }
	
}
//--------------------------------------------------------------------------
class MyTableModel extends AbstractTableModel
{
	 private String[] columnNames;
	 private Object[][] data;
	 private ResultSet rs;
	 
	 private ConToMysql con;
	 
	 public MyTableModel(String sqlstr,String sqlstrForCount)
	 {
	 	 initData(sqlstr,sqlstrForCount);
	 }
	 
	 public int getColumnCount()
	 {
	 	return columnNames.length;
	 }
	 public int getRowCount()
	 {
	 	return data.length;
	 }
	 public String getColumnName(int col)
	 {
	 	return columnNames[col];
	 }
	 public Object getValueAt(int row,int col)
	 {
	 	return data[row][col];
	 }
	 
	 public void initData(String sqlstr,String sqlstrForCount)
	 {
	 	//String sqlstr="select 姓名,性别,关系,生日,手机from book";
	 	//String sqlstrForCount="select count(*)from personinfor";//get the rowNumber of the table;
	 	int rowNum=0;
	 	int colNum=0;
	 	con=new ConToMysql();
	 	rs=con.Search(sqlstrForCount);
	 	try{
	 	rs.next();
	 	rowNum=rs.getInt(1);
	 	rs=con.Search(sqlstr);
	 	ResultSetMetaData rsmd=rs.getMetaData();
	 	colNum=rsmd.getColumnCount();
	 	
	 	columnNames=new String[colNum];
	 	for(int i=1;i<=colNum;i++)
	 	{
	 		columnNames[i-1]=rsmd.getColumnName(i);
	 	}
	 	
	 	data=new Object[rowNum][colNum];
	  int i=0;
	  while(rs.next())
	  {
	  	for(int j=1;j<=colNum;j++)
	  	{
	  		data[i][j-1]=rs.getObject(j);
	  	}
	  	i++;
	  }
	}catch(Exception e)
	{
		e.printStackTrace();
	}
	 	
	 }
}
//--------------------------------------------------------------------------
class ConToMysql
{
	 private String dbDriver="org.gjt.mm.mysql.Driver";//连接数据库的驱动
	 private String URL="jdbc:mysql://localhost:3306/communicationbook";//连接地址
	 
	 private String user="root"; //数据库用户名
	 private String passwd="123"; //数据库密码
	 Connection con;
	 Statement  sm;
	 ResultSet rs;
	 boolean state;
	 public ConToMysql()
	 {
	 	  con=null;
	 	  sm=null;
	 	  rs=null;
	 	  state=false;
	 }
	 public void getConnect() //连接到数据库
	 {
	 	  try{
	 	  	Class.forName(dbDriver);
	 	  	con=DriverManager.getConnection(URL,user,passwd);
	 	  	if(con!=null)
	 	  	  state=true;
	 	  }catch(Exception e)
	 	  {
	 	  	e.printStackTrace();
	 	  }
	 }
	 public boolean getState()//返回连接成功的状态
	 {
	 	  return state;
	 }
	 
	 public ResultSet Search(String sqlString) //根据参数提供的查询参数返回查询结果。
	 {
	 	if(con==null)
	 	{
	 		getConnect();
	 	}
	 		try{
	 			sm=con.createStatement();
	 			rs=sm.executeQuery(sqlString);
	 		}catch(Exception e)
	 		{
	 			e.printStackTrace();
	 		}
	 	  return rs;
	 }	 
}

class OperateToDetailInfor
{
	 PersonInforPanel personInforPanel;
   FamilyInforPanel familyInforPanel;
   CompanyInforPanel companyInforPanel;
   ConToMysql conToMysql;
   ResultSet rs;
   String name;
   public OperateToDetailInfor(PersonInforPanel p,FamilyInforPanel f,CompanyInforPanel c)
   {
   	personInforPanel=p;
   	familyInforPanel=f;
   	companyInforPanel=c;
   	conToMysql=new ConToMysql();
   	rs=null;
   	name="";
   }
   
   public void setName(String n)
   {
   	name=n;
   }
   
   public void DisplayDetailInfor()
   {
   	 String companyNum;
		 String familyNum;
		 String familyAddressNum;
		 String companyAddressNum;
		 
   	 String sqlstr1="select * from personinfor where 姓名='"+name+"'";
   	 try{
   	 	rs=conToMysql.Search(sqlstr1);
   	 	rs.next();
   	 	companyNum=rs.getString("单位号");
			familyNum=rs.getString("家庭号");
			personInforPanel.personNameField.setText(rs.getString("姓名"));
			personInforPanel.personBirthDateField.setText(rs.getString("生日"));
			personInforPanel.personFancyField.setText(rs.getString("爱好"));
			personInforPanel.personSpecialtyField.setText(rs.getString("特长"));
			personInforPanel.personCellPhoneField.setText(rs.getString("手机"));
			personInforPanel.personCallPhoneField.setText(rs.getString("寻呼"));
			personInforPanel.personQQField.setText(rs.getString("QQ"));
			personInforPanel.personEmailField.setText(rs.getString("电子邮件"));
			personInforPanel.personWebsiteField.setText(rs.getString("个人主页"));
			
			personInforPanel.personSexField.setText(rs.getString("性别"));
			personInforPanel.personRelationField.setText(rs.getString("关系"));
			personInforPanel.picturePanel.setPicPath(rs.getString("照片路径"));
			personInforPanel.picturePanel.update();
			
			String sqlstr2="select * from familyinfor where 家庭号='"+familyNum+"'";
		  String sqlstr3="select * from companyinfor where 单位号='"+companyNum+"'";
		
		  rs=conToMysql.Search(sqlstr2);
		  rs.next();
		  familyAddressNum=rs.getString("地址号");
		  String sqlstr4="select * from address where 地址号='"+familyAddressNum+"'";
		
		  familyInforPanel.homePhoneField.setText(rs.getString("家庭电话"));
		  familyInforPanel.homeFaxField.setText(rs.getString("家庭传真"));
		
		  rs=conToMysql.Search(sqlstr4);
		  rs.next();
		  familyInforPanel.postNumField.setText(rs.getString("邮政编码"));
		  familyInforPanel.addressField.setText(rs.getString("门牌地址"));
		  
		  familyInforPanel.countryField.setText(rs.getString("国家/地区"));
		  familyInforPanel.provinceField.setText(rs.getString("省市/自治区"));
		  familyInforPanel.townField.setText(rs.getString("县州市"));
		
		  rs=conToMysql.Search(sqlstr3);
		  rs.next();
		  companyAddressNum=rs.getString("地址号");
		  companyInforPanel.companyNameField.setText(rs.getString("单位名"));
		  companyInforPanel.companyPhoneField.setText(rs.getString("单位电话"));
		  companyInforPanel.companyFaxField.setText(rs.getString("单位传真"));
		  companyInforPanel.companyWebsiteField.setText(rs.getString("单位主页"));
		  
		  companyInforPanel.positionField.setText(rs.getString("职位"));
		  companyInforPanel.departmentField.setText(rs.getString("部门"));
		  
		  String sqlstr5="select * from address where 地址号='"+companyAddressNum+"'";
		  rs=conToMysql.Search(sqlstr5);
		  rs.next();
		  companyInforPanel.postNumField.setText(rs.getString("邮政编码"));
		  companyInforPanel.addressField.setText(rs.getString("门牌地址"));
		  
		  companyInforPanel.countryField.setText(rs.getString("国家/地区"));
		  companyInforPanel.provinceField.setText(rs.getString("省市/自治区"));
		  companyInforPanel.townField.setText(rs.getString("县州市"));
		  
   	 }catch(Exception e)
   	 {
   	 	e.printStackTrace();
   	 }
   	
   }
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -