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

📄 ipmsgmainfrm.java

📁 局域网飞鸽传输
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		paneBottom.setLayout(new BorderLayout(3,3));
		paneBottom.add(paneSendList,BorderLayout.NORTH);
		paneBottom.add(new JScrollPane(areaChat,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
		paneBottom.add(paneSouth,BorderLayout.SOUTH);
		paneBottom.setMinimumSize(new Dimension(200,120));
		JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);
		split.setOneTouchExpandable(false);
		split.setDividerLocation(140);
		split.setLeftComponent(paneTop);
		split.setRightComponent(paneBottom);
		split.setBorder(null);
		
		add(new FillWidth(8,8),BorderLayout.WEST);
		add(split);
		add(new FillWidth(8,8),BorderLayout.EAST);
	}
	
	/**
	 * 按钮点击事件。
	 */
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==boxIsPackage){
			boxIsLock.setEnabled(boxIsPackage.isSelected());
			boxIsLock.setSelected(false);
			return;
		}
		if(e.getSource()==btnSendList){
			listDialog.setVisible(true);
		}
		if(e.getSource()==itemAbout){
			if(about == null)
				about = new About(this,"关于飞鸽传书",true);
			else
				about.setVisible(true);
			return;
		}
		if(e.getSource()==itemShow){
			if(!isVisible())
				setVisible(true);
			else
				setState(NORMAL);
			return;
		}
		if(e.getSource()==itemMonitor){
			if(monitor == null)
				monitor = new FileSendMonitor();
			else
				monitor.setVisible(true);
			return;
		}
		if(e.getSource()==itemSetTop){
			if(!isVisible())
				setVisible(true);
			else
				setState(NORMAL);
			setAlwaysOnTop(true);
			return;
		}
		if(e.getSource()==itemSeeLog){
			//JOptionPane.showMessageDialog(null, "功能制作中...");
			return;
		}
		
		if(e.getSource()==itemQuit){
			
			return;
		}
	}
	
	public void tableChanged(TableModelEvent e) {
		lblOnlineNum.setText(model.getRowCount()+"");
		if(trayIcon!=null)
			trayIcon.setToolTip("飞鸽传书("+model.getRowCount()+")");
	}
	
	/**
	 * 窗体关闭时触发事件。
	 */
	private class MyWindowAdapter extends WindowAdapter{
		public void windowClosing(WindowEvent e) {
			//super.windowClosing(e);
			System.exit(0);
		}
	}
	
	private class MyMouseAdapter extends MouseAdapter{
		@Override
		public void mouseClicked(MouseEvent e) {
			if(e.getSource()==trayIcon && e.getClickCount()==2)
				if(!isVisible())
					setVisible(true);
				else
					setState(NORMAL);
		}
	}
	
	/**
	 * table的Model
	 */
	public class MyDefaultTableModel extends DefaultTableModel{
		@Override
		public boolean isCellEditable(int row, int column) {
			return false;
		}
		
		/**
		 * 如果行中存在user,则不添加,否则添加
		 * @param user
		 * @return user对象添加到行中时,返回true,否则返回false
		 */
		public boolean addUser(User user){
			if(user!=null){
				for(int i=0;i<getRowCount();i++){
					User xuser = getRow(i);
					if(xuser.equals(user))
						return false;
				}
				
				String[] rows = {user.getUserName(),user.getHostName(),user.getIpAdress(),user.getLoginName(),user.getPriority()};
				addRow(rows);
				return true;
			}
			return false;
			
		}
		
		/**
		 * 得到某行的User对象
		 * @param n 行数
		 * @return 如果列数>5,根据前五列构造User对象。否则返回空。
		 */
		public User getRow(int n){
			if(getColumnCount()>=5){
				User user = new User();
				user.setUserName(getValueAt(n, 0).toString());
				user.setHostName(getValueAt(n, 1).toString());
				user.setIpAdress(getValueAt(n, 2).toString());
				user.setLoginName(getValueAt(n, 3).toString());
				user.setPriority(getValueAt(n, 4).toString());
				return user;
			}else
				return null;
		}
		
		/**
		 * 根据第3列及判断ip是否相同删除某行
		 * @param ip ip地址
		 * @return ip存在删除成功,返回true,否则false
		 */
		public boolean removeFromIP(String ip){
			for(int i=0;i<getRowCount();i++)
				if(getValueAt(i, 2).toString().equals(ip)){
					remove(i);
					return true;
				}
			return false;
		}
		
		/**
		 * 获取某行所表示的ip地址
		 * @param n 行数
		 * @return 返回ip地址
		 */
		public String getIpAddress(int n){
			return getValueAt(n, 2).toString();
		}
		
		public String getUserInfo(String ip){
			for(int i=0;i<getRowCount();i++)
				if(getValueAt(i, 2).toString().equals(ip)){
					User user = getRow(i);
					return user.getUserName()+" ("+user.getHostName()+")";
				}
			return null;
		}
	}
	
	/**
	 * 拖拽事件。
	 */
	private class MyDropTargetAdapter extends DropTargetAdapter{
		@SuppressWarnings("unchecked")
		public void drop(DropTargetDropEvent dtde) {
			dtde.acceptDrop(DnDConstants.ACTION_COPY); 
			Transferable   transferable   =   dtde.getTransferable(); 
            DataFlavor[]   flavors   =   transferable.getTransferDataFlavors();
            for(DataFlavor flavor:flavors){
            	if(flavor.equals(DataFlavor.javaFileListFlavor)){
            		try {
						List<File> files = (List<File>)transferable.getTransferData(flavor);
						for(File file:files)
							if(listDialog.model.addFile(file)){
								paneSendList.setPreferredSize(new Dimension(500,28));
								setSendFileList(listDialog.getSendFile());
							}
					} catch (UnsupportedFlavorException e) {
						System.out.println("转换错误:"+e.getMessage());
					} catch (IOException e) {
						System.out.println("转换错误:"+e.getMessage());
					}
            	}
            }
		}
	}
	
	/**
	 * 设置传输文件列表
	 * @param str 传输文件的列表的字符串
	 */
	public void setSendFileList(String str){
		btnSendList.setText(str);
		if(str.equals(""))
			paneSendList.setPreferredSize(new Dimension(500,3));
	}
	
	/**
	 * 获取发送内容
	 * @return 返回发送内容的字符串
	 */
	public String getContent(){
		String content = "";
		content  = "["+DateDeal.getAllDate(new Date())+"]"+listDialog.getSendPath()+areaChat.getText();
		//System.out.println(content);
		return content;
	}
	
	/**
	 * 获取发送文件的列表。
	 * @return 返回发送文件的列表。
	 */
	public String getSendList(){
		return listDialog.getSendList();
	}
	
	/**
	 * 清空发送文件的列表。
	 */
	public void clearSendList(){
		listDialog.clearSendList();
	}
	
	/**
	 * 清空table中内容
	 */
	public void clearTable(){
		if(model!=null)
			model.setRowCount(0);
	}
	
	/**
	 * 获取选中的行。
	 * @return 返回选中的行。
	 */
	public int[] getSelectRow(){
		return tableUser.getSelectedRows();
	}
	
	/**
	 * 清空聊天窗口。
	 */
	public void clearChat(){
		areaChat.setText("");
		setSendFileList("");
	}
}

⌨️ 快捷键说明

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