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

📄 addressbookpanel.java

📁 java图形化界面编程 功能和记事本通讯录相似 记录通讯人的姓名和联系方法等信息并提供查询
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		public void actionPerformed(ActionEvent e)
		{
			boolean b=useRegExp.isSelected();
			if(!b)
				doNormalSearch();
			else
				doSearchUseRegularExpression();
		}
		
	}
	
	class BtnModifyL implements ActionListener
	{

		public void actionPerformed(ActionEvent e) 
		{
			int rowCount=table.getRowCount();
			//int tableColumn=table.getColumnModel().getColumnIndex("ID");
			int column=IdColumn;//table.convertColumnIndexToModel(tableColumn);
			AddressEntryDialog addressEntryDialog
			=new AddressEntryDialog(null,addressBookModel);
			addressEntryDialog.setModal(true);
			for(int i=0;i<rowCount;i++)
			{
				if(tableModel.getValueAt(i,0).equals(Boolean.TRUE))
				{
					long id=((Long)tableModel.getValueAt
							( tableModel.getRowInModel( i ),column ))
							.longValue();
					addressEntryDialog.showAddressEntryDialog
					(addressBookModel.getAddressEntry(id));
					AddressEntry entry=addressEntryDialog.getInputAddressEntry();
					if(entry!=null)
						addressBookModel.updateAddressEntry(entry);
				}
			}
			addressEntryDialog.dispose();
			searchResult.clear();
			updateView();
		}
		
	}
	
	class BtnDeleteFromGroupL implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			int rowCount=table.getRowCount();
			//int tableColumn=table.getColumnModel().getColumnIndex("ID");
			int column=IdColumn;//=table.convertColumnIndexToModel(tableColumn);
			for(int i=0;i<rowCount;i++)
			{
				if(tableModel.getValueAt(i,0).equals(Boolean.TRUE))
				{
					long id=((Long)tableModel.getValueAt
							( tableModel.getRowInModel( i ),column ))
							.longValue();
					addressBookModel.removeAddressEntryFromGroup
					(comboViewMode.getSelectedItem().toString(),id);
				}
			}
			updateView();
		}
	}
	
	
	class BtnDeleteForeverL implements ActionListener
	{

		public void actionPerformed(ActionEvent e) 
		{
			int rowCount=table.getRowCount();
			int tableColumn=table.getColumnModel().getColumnIndex("Selected");
			int c=table.convertColumnIndexToModel(tableColumn);
			//int tableColumn=table.getColumnModel().getColumnIndex("ID");
			int column=IdColumn;//table.convertColumnIndexToModel(tableColumn);
			for(int i=0;i<rowCount;i++)
			{
				if(tableModel.getValueAt(i,c).equals(Boolean.TRUE))
				{
					long id=((Long)tableModel.getValueAt
							( tableModel.getRowInModel( i ),column ))
							.longValue();
					addressBookModel.removeAddressEntry(id);
				}
			}
			updateView();
		}
		
	}
	
	class BtnMoveToGroupL implements ActionListener
	{

		public void actionPerformed(ActionEvent e)
		{
			if(comboGroups.getModel().getSize()==0)
				return;
			String destGroup=comboGroups.getSelectedItem().toString();
			String displayingGroup=comboViewMode.getSelectedItem().toString();
			if(destGroup.length()==0 || destGroup.equals(displayingGroup))
				return;
			int rowCount=table.getRowCount();
			
			int tableColumn=table.getColumnModel().getColumnIndex("Selected");
			int c=table.convertColumnIndexToModel(tableColumn);
			int column=IdColumn;//table.convertColumnIndexToModel(tableColumn);
			for(int i=0;i<rowCount;i++)
			{
				if(tableModel.getValueAt(i,c).equals(Boolean.TRUE))
				{
					long id=((Long)tableModel.getValueAt
							( tableModel.getRowInModel( i ),column ))
							.longValue();
					addressBookModel.addGroupMember(destGroup,id);
					if(checkBoxDeleteSimultaneously.isSelected())
					{
						addressBookModel.removeAddressEntryFromGroup
						(displayingGroup,id);
					}
				}
			}
			updateView();
		}
		
	}
	
	class TableHeaderMouseL extends MouseAdapter
	{

		public void mouseClicked(MouseEvent e) {
			if(e.getClickCount()<2)
				return;
			int tableColumn=table.columnAtPoint(e.getPoint());
			
			int modelColumn=table.convertColumnIndexToModel(tableColumn);
			tableModel.sort(modelColumn);
		}		
	}
	
	class ComBoSortModeL implements ActionListener
	{

		public void actionPerformed(ActionEvent e)
		{
			String columnName=comboSortMode.getSelectedItem().toString();
			int columnIndex=table.getColumnModel().getColumnIndex(columnName);
			int modelColumn=table.convertColumnIndexToModel(columnIndex);
			tableModel.sort(modelColumn);
		}
	}
	
	class ComboViewModeL implements ActionListener
	{

		public void actionPerformed(ActionEvent e)
		{
			if(comboViewMode.getItemCount()==0)
				return;
			String mode=comboViewMode.getSelectedItem().toString();
			if(mode.length()==0)
				return;
			/*if(mode.equals("All"))
			{
				btnDeleteFromGroup.setEnabled(false);
				Collection<AddressEntry> allMembers = 
					addressBookModel.getAllAddressEntries();
				tableModel.setRowCount(0);
				for(AddressEntry ele:allMembers)
				{
					tableModel.addRow(ele.toArray());
				}
			}*/
			if(mode.equals("Search"))
			{
				btnDeleteFromGroup.setEnabled(false);
				checkBoxDeleteSimultaneously.setEnabled(false);
				tableModel.setRowCount(0);
				for(AddressEntry ele:searchResult)
				{
					tableModel.addRow(ele.toArray());
				}
			}
			else
			{
				if(mode.equals("All"))
				{
					btnDeleteFromGroup.setEnabled(false);
					checkBoxDeleteSimultaneously.setEnabled(false);
				}
				else
				{
					btnDeleteFromGroup.setEnabled(true);
					checkBoxDeleteSimultaneously.setSelected(false);
					checkBoxDeleteSimultaneously.setEnabled(true);
				}
				Collection<AddressEntry> groupMembers
				= addressBookModel.getGroupMembers(mode);
				tableModel.setRowCount(0);
				for(AddressEntry ele:groupMembers)
				{
					tableModel.addRow(ele.toArray());
				}
			}
		}
	}
	
}
/**
 * a table model can do sort by clicking the table header column
 * @author Elegate,elegate@gmail.com
 * @author cs department of NJU
 */
class SortFilterTableModel extends DefaultTableModel
{
	public static final int UP=0;
	public static final int DOWN=1;
	public static final int NO_ORDER=2;
   /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
    private int sortDirection=UP;
   public SortFilterTableModel()
   {  
	     updateRows();
   }
   
   public SortFilterTableModel(String[] columns,int rowCount)
   {
	   super(columns,rowCount);
	   updateRows();
   }

   /**
      Sorts the rows.
      @param c the column that should become sorted
   */
   public void sort(int c)
   {  
	  if(rows.length!=getRowCount())
		   updateRows();
      sortColumn = c;
      if(rows.length>0)
    	  Arrays.sort(rows);
      fireTableDataChanged();
      if(sortDirection==UP)
    	  sortDirection=DOWN;
      else
    	  sortDirection=UP;
   }

   // Compute the moved row for the three methods that access
   // model elements

   public Object getValueAt(int r, int c)
   {  
	   if(rows.length!=getRowCount())
		   updateRows();
	  if(r<rows.length)
		  return super.getValueAt(rows[r].index, c);
	  else
		  return super.getValueAt(r,c);
   }

   public boolean isCellEditable(int r, int c)
   {  
	  if(c==0)
		  return true;
	  else
		  return false;
      //return super.isCellEditable(rows[r].index, c);
   }

   public void setValueAt(Object aValue, int r, int c)
   {  
	   if(rows.length!=getRowCount())
		   updateRows();
	   if(rows.length>r)
		   super.setValueAt(aValue, rows[r].index, c);
	   else
		   super.setValueAt(aValue,r,c);
   }

 
    @SuppressWarnings("unchecked")
	public Class getColumnClass(int c)
   {  
	   Vector v=(Vector)dataVector.elementAt(0);
	   Object obj=v.elementAt(c);
	   if(obj!=null)
		   return obj.getClass();
	   else
		   return super.getColumnClass(c);
   }
  
    public int getRowInModel(int r)
    {
    	if(rows.length!=getRowCount())
  		   updateRows();
    	if(r<rows.length)
    		return rows[r].index;
    	else
    		return r;
    }

    private Object getValueAtInModel(int r,int c)
    {
    	return super.getValueAt(r,c);
    }
    
   /** 
      This inner class holds the index of the model row
      Rows are compared by looking at the model row entries
      in the sort column.
   */
   private class Row implements Comparable
   {  
      public int index;
      @SuppressWarnings("unchecked")
      public int compareTo(Object other)
      {  
         Row otherRow = (Row)other;
         Object a = getValueAtInModel(index, sortColumn);
         Object b = getValueAtInModel(otherRow.index, sortColumn);
         int ret;
       	 if (a instanceof Comparable)
        	 ret = ((Comparable)a).compareTo(b);
         else
         {
        	 if(b==null)
        		 ret=1;
        	 else
        		 ret = a.toString().compareTo(b.toString());
         }
       	 if(sortDirection==UP)
       		 return ret;
       	 else
       		 return -ret;
      }
   }

   private void updateRows()
   {
	   	rows = new Row[getRowCount()];
		for (int i = 0; i < rows.length; i++)
		{  
		     rows[i] = new Row();
		     rows[i].index = i;
		}
   }
   
   private int sortColumn;
   private Row[] rows;
}

⌨️ 快捷键说明

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