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

📄 displaydlg.java

📁 一个典型的电子通讯录,自己制作的 1.采用JAVA图形用户界面(GUI)进行设计。 2.数据库采用Microsoft Access 2003。 欢迎来到我的主页http://hi.baidu.c
💻 JAVA
字号:
  /*显示联系人的信息对话框
 */
  import java.awt.*;
 import javax.swing.*;
 import java.awt.event.*;
 import java.sql.*;
 import java.io.*;
 class DisplayDlg extends JDialog

 {
	 public DisplayDlg(JFrame frame,String item,String key)
	 {
		 super(frame,"联系人信息",true);//创建一个具有指定标题和指定所有者 Frame 的有模式对话框
		 this.item=item;
		 this.key=key;

		 Toolkit kit=Toolkit.getDefaultToolkit();
		 Dimension screenSize=kit.getScreenSize();
		 int screenWidth=screenSize.width;
		 int screenHeight=screenSize.height;
		 setSize(screenWidth/2,screenHeight/2);
		 setLocation(screenWidth/4,screenHeight/4);
		 initDlg();//初始化组件
		 connData();//查找数据库,显示相关信息
	}

	public void initDlg()
	 	{
			add(panel);// 增加面板
			panel.setLayout(null);//设置容器的布局管理器
	    /*--------------设置资料-------------------------*/
			nameLabel.setFont(new Font("Dialog",Font.BOLD,15));//设置字体
	        nameLabel.setBounds(new Rectangle(280,30,60,15));//标签位置
		    nameLabel.setText("姓 名:");//设置文字
			panel.add(nameLabel);//标签增加到面板中

		    sexLabel.setFont(new Font("Dialog",Font.BOLD,15));//设置字体
			sexLabel.setBounds(new Rectangle(280,60,60,15));//标签位置
			sexLabel.setText("姓 别:");//设置文字     setEditable(boolean aFlag) 确定 JComboBox 字段是否可编辑
			panel.add(sexLabel);//标签增加到面板中


		    telLabel.setFont(new Font("Dialog",Font.BOLD,15));
		    telLabel.setBounds(new Rectangle(280,98,60,15));
		    telLabel.setText("电 话:");
		    panel.add(telLabel);

		    mobLabel.setFont(new Font("Dialog",Font.BOLD,15));
		    mobLabel.setBounds(new Rectangle(280,128,60,15));
		    mobLabel.setText("手 机:");
		    panel.add(mobLabel);


		  qqLabel.setFont(new Font("Dialog",Font.BOLD,15));
		  qqLabel.setBounds(new Rectangle(280,158,60,15));
		   // qqLabel.setText("Q Q:");
		   panel.add(qqLabel);


		    emaLabel.setFont(new Font("Dialog",Font.BOLD,15));
		    emaLabel.setBounds(new Rectangle(280,188,60,15));
		//	emaLabel.setText("邮 箱:");
		    panel.add(emaLabel);

	     groLabel.setFont(new Font("Dialog",Font.BOLD,15));//设置字体
	     groLabel.setBounds(new Rectangle(280,220,60,15));//标签位置
	      groLabel.setText("分 组:");//设置文字     setEditable(boolean aFlag) 确定 JComboBox 字段是否可编辑
	      panel.add(groLabel);//标签增加到面板中
	//

		    nameTextField.setText("");
		    nameTextField.setEnabled(false);//设置不可修改
		    nameTextField.setFont(new Font("Dialog",Font.BOLD,15));
			nameTextField.setBounds(new Rectangle(350, 24, 80, 20));//输入姓名
			panel.add(nameTextField);

	        sexCombo = new JComboBox(new String[]{"男","女"});
	        sexCombo.setEnabled(false);//设置不可修改
	        sexCombo.setFont(new Font("Dialog",Font.BOLD,15));
	        sexCombo.setBounds(new Rectangle(350,54,80,20));
	        panel.add(sexCombo);

			telTextField.setText("");
			telTextField.setEnabled(false);//设置不可修改
			telTextField.setBounds(new Rectangle(350, 95, 110, 20));//输入电话
			telTextField.setFont(new Font("Dialog",Font.BOLD,15));
			panel.add(telTextField);

			mobTextField.setText("");
			mobTextField.setEnabled(false);//设置不可修改
			mobTextField.setFont(new Font("Dialog",Font.BOLD,15));
			mobTextField.setBounds(new Rectangle(350, 125, 140, 20));//输入手机
			panel.add(mobTextField);

			qqTextField.setText("");
			qqTextField.setEnabled(false);//设置不可修改
			qqTextField.setBounds(new Rectangle(350, 155, 110, 20));//输入QQ
			qqTextField.setFont(new Font("Dialog",Font.BOLD,15));
			panel.add(qqTextField);

			emaTextField.setText("");
			emaTextField.setEnabled(false);//设置不可修改
			emaTextField.setFont(new Font("Dialog",Font.BOLD,15));
			emaTextField.setBounds(new Rectangle(350, 185, 158, 20));//输入E-mail
			panel.add(emaTextField);

            groCombo = new JComboBox(new String[]{"家人","同事","朋友","同学","其他"});
            groCombo.setFont(new Font("Dialog",Font.BOLD,15));
            groCombo.setEnabled(false);//设置不可修改
            groCombo.setBounds(new Rectangle(350,220,80,20));
            panel.add(groCombo);
	        /*--------------设置图像--------------------------*/

	        picLabel.setBounds(new Rectangle(30,30,200,200));
	        panel.add(picLabel);//用来显示图像的

	        pathLabel.setFont(new Font("Dialog",Font.BOLD,15));
		    pathLabel.setBounds(new Rectangle(20,250,70,15));
		    pathLabel.setText("图像路径:");
		    panel.add(pathLabel);

			pathTextField.setBounds(new Rectangle(110, 250, 240, 20));//图象路径名
			pathTextField.setEnabled(false);//设置不可更改
			panel.add(pathTextField);

	    /*--------------设置下面的三个按钮--------------------------*/

		    preButton.setFont(new Font("Dialog",Font.BOLD,15));
			preButton.setBounds(new Rectangle(100,310,80,25));
			preButton.setText("上一条");
			preButton.addActionListener(new DisplayDlgListener(this));
			panel.add(preButton);

	        nextButton.setFont(new Font("Dialog",Font.BOLD,15));
			nextButton.setBounds(new Rectangle(200,310,80,25));
			nextButton.setText("下一条");
			nextButton.addActionListener(new DisplayDlgListener(this));//为按钮增加一个监听器
			panel.add(nextButton);

			conButton.setFont(new Font("Dialog",Font.BOLD,15));
		    conButton.setBounds(new Rectangle(300,310,80,25));
		    conButton.setText("确 定");
		    conButton.addActionListener(new DisplayDlgListener(this));//为按钮增加一个监听器
		    panel.add(conButton);

		}

	     public void connData()
	     {
			 try
			 {
				 String sql ="select * from Book where "+item+"='"+key+"'";
				rs=connDB.executeQuery(sql);//执行给定的 SQL 语句,该语句返回单个 ResultSet 对象
			 	 if (rs.next())//将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;
			 				             //第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推
			 	  {
					  nameTextField.setText(rs.getString("姓名"));//获取字符集的字段
					  telTextField.setText(rs.getString("电话"));
					  mobTextField.setText(rs.getString("手机"));
					  qqTextField.setText(rs.getString("QQ"));

					qqLabel.setLink("Q Q", "tencent://message/?uin="+rs.getString("QQ"));//实现与QQ的连接
					emaLabel.setLink("Email","mailto:"+rs.getString("Email"));//实现发邮件的功能


					  emaTextField.setText(rs.getString("Email"));
					  sexCombo.setSelectedIndex(rs.getInt("Sex"));
					  groCombo.setSelectedItem(rs.getString("分组"));
					  String pict="Images//"+rs.getString("Picture");
					  if(!pict.equals(""))
					  {
						   pathTextField.setText(pict);//
						  ImageIcon image= new ImageIcon(pict);//根据图像路径创建一个图象引用
						  picLabel.setIcon(image);//设置图像

					  }

					  if (!rs.next())//获取记录集的下一个记录集,如果不存在,刚"下一条"按钮不激活
					        nextButton.setEnabled(false);
					  if(!rs.previous());//获取记录集的上一个记录集,如果不存在,刚"上一条"按钮不激活
							preButton.setEnabled(false);
					}
				 else//如果记录集为空
				    {
						JOptionPane.showMessageDialog(null, "没有您要查找的联系人", "警告",JOptionPane.WARNING_MESSAGE);

					 }
				 }
			catch (Exception eg)
			{
				JOptionPane.showMessageDialog(null, "数据库连接失败", "警告",JOptionPane.WARNING_MESSAGE);
				eg.printStackTrace();
			}
		}
		public void conPerformed()
		{//确定
		     dispose();//关闭窗口
		}

		 public void prePerformed()
		 {//"上一条"
		      try
		      {
				  if (rs.isFirst())//如果指针已经 指向第一行了
					  preButton.setEnabled(false);//"上一条"按钮不被激活
				  else
				   {
				       nextButton.setEnabled(true);
				       preButton.setEnabled(true);
				   }
				   if(rs.previous())
				   {
				  nameTextField.setText(rs.getString("姓名"));//获取字符集的字段
				  telTextField.setText(rs.getString("电话"));
			 	  mobTextField.setText(rs.getString("手机"));
			 	  qqTextField.setText(rs.getString("QQ"));

			 	   //
			 	   qqLabel.changeLink("Q Q", "tencent://message/?uin="+rs.getString("QQ"));//相对应改变与QQ的连接
				 emaLabel.changeLink("Email","mailto:"+rs.getString("Email"));//相对应改变发邮件的连接
			 	  //
			 	  emaTextField.setText(rs.getString("Email"));
			 	  sexCombo.setSelectedIndex(rs.getInt("sex"));
			 	  String pict="Images//"+rs.getString("Picture");
			 	   groCombo.setSelectedItem(rs.getString("分组"));
			 	  picLabel.setIcon(new ImageIcon(pict));//设置图像
			 	  pathTextField.setText(pict);






			       }
			       if (rs.isFirst())
					   preButton.setEnabled(false);///"上一条"按钮不被激活
			  }
				  catch(Exception e)
			 	 {
					 e.printStackTrace();
					 JOptionPane.showMessageDialog(null,"上一条数据出错!","警告",JOptionPane.WARNING_MESSAGE);
				 }

		 }

		 public void nextPerformed()
		 {//下一条

			 try{
				  if (rs.isLast())//如果指针已经 指向最后一行了
					  nextButton.setEnabled(false);//"下一条"按钮不被激活
					else
					{
						nextButton.setEnabled(true);
						preButton.setEnabled(true);
					}
				  if(rs.next())
				   {
					  nameTextField.setText(rs.getString("姓名"));//获取字符集的字段
					  telTextField.setText(rs.getString("电话"));
					  mobTextField.setText(rs.getString("手机"));
					  qqTextField.setText(rs.getString("QQ"));
					  //
					   qqLabel.changeLink("Q Q", "tencent://message/?uin="+rs.getString("QQ"));//相对应改变与QQ的连接
					   emaLabel.changeLink("Email","mailto:"+rs.getString("Email"));//相对应改变发邮件的连接

					   emaTextField.setText(rs.getString("Email"));
					   sexCombo.setSelectedIndex(rs.getInt("sex"));
					    groCombo.setSelectedItem(rs.getString("分组"));
					   String pict="Images//"+rs.getString("Picture");
					   picLabel.setIcon(new ImageIcon(pict));//设置图像
					   pathTextField.setText(pict);//
					   if (rs.isLast())
					     nextButton.setEnabled(false);
				}
			}
			catch(Exception e)
			 {
				 e.printStackTrace();
				 JOptionPane.showMessageDialog(null,"下一条数据库出错!","警告",JOptionPane.WARNING_MESSAGE);
			 }
		 }

	     String item;
	     String key;
	     ResultSet rs;
	     JPanel panel= new JPanel();//面板

	     ConnDB connDB=new ConnDB();//连接数据库

	     JComboBox sexCombo;//组合选框
	     JComboBox groCombo;

	     JLabel nameLabel=new JLabel();//标签
	     JLabel sexLabel=new JLabel();
	     JLabel telLabel=new JLabel();
	     JLabel mobLabel=new JLabel();
	     LinkLabel qqLabel=new LinkLabel();//有超连接的标签
	     LinkLabel emaLabel=new LinkLabel();
	     JLabel groLabel=new JLabel();

	   //  JLabel qqLabel=new JLabel();
	    // JLabel emaLabel=new JLabel();
	     JTextField nameTextField= new JTextField();//文本域
	     JTextField telTextField=new JTextField();
	     JTextField mobTextField= new JTextField();
	     JTextField qqTextField=new JTextField();
	     JTextField emaTextField= new JTextField();
	     JButton conButton=new JButton();//按钮
	     JButton nextButton=new JButton();
	     JButton preButton=new JButton();

	     JLabel picLabel=new JLabel();//标签用来显示图像
	     JLabel pathLabel=new JLabel();
	     JTextField pathTextField=new JTextField();
}

class DisplayDlgListener implements ActionListener
{//监听器
  public DisplayDlgListener(DisplayDlg dlg)
  {
	  this.dlg=dlg;
   }
   public void actionPerformed(ActionEvent event)
   {
	   if(event.getSource()==dlg.conButton)//当按下的是"确定"按钮
	        dlg.conPerformed();
	   else if(event.getSource()==dlg.preButton)//当按下的是"上一条"按钮
	        dlg.prePerformed();
	   else if(event.getSource()==dlg.nextButton)//当按下的是"下一条"按钮
	        dlg.nextPerformed();
   }
  DisplayDlg dlg;
}

⌨️ 快捷键说明

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