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

📄 mainwindow.java

📁 一个简单的多线程下载程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    			topCard.show(panelRightTop,"deleted");
    			tableFinished.clearSelection();
    			bottomCard.show(panelRightBottom,"default");
    			
    			tableDownFlag = false;
    			tableFinishedFlag = false;
    			tableDeletedFlag = true;
    		}
    	}
    	public void mouseEntered(MouseEvent e){}
    	public void mouseExited(MouseEvent e){}
    	public void mousePressed(MouseEvent e){}
    	public void mouseReleased(MouseEvent e){}
    }
    
    /**
     *弹出式菜单组件事件监听------------------------------------------------------------
     **/
    class PopupActionListener implements ActionListener
    {
    	public void actionPerformed(ActionEvent e)
    	{
    		JTable tempTable = null;
    		if(tableDownFlag)
    		{
    			tempTable = tableDown;			
    		}
    		else if(tableFinishedFlag)
    		{
    			tempTable = tableFinished;
    		}
    		else
    		{
    			tempTable = tableDeleted;
    		}
    		
    		String temp = ((JMenuItem)e.getSource()).getText();
    		if(temp.equals("开始"))
    		{
    			int i = tableDown.getSelectedRow();
    			
    			if(i == -1)
    			{
    				JOptionPane.showMessageDialog(null,"请先选择一行进行操作","报错",JOptionPane.ERROR_MESSAGE);
    			}
    			else
    			{
    				if(!(Boolean)(statusList.get(i)))
            		{
            			statusList.remove(i);
						statusList.add(i,new Boolean(true));
						runningList.remove(i);
						runningList.add(i,new Boolean(true));
							
            			((TaskManage)taskDownList.get(i)).runSubThread();
            			((TaskManage)taskDownList.get(i)).start();
            		}
            	
           	 		else
            		{
            			//任务正在执行,则停止------------------------------------------------
						if((Boolean)(runningList.get(i)))
						{
							//
						}
				
						//任务没有在执行,则执行----------------------------------------
           		 		else
           		 		{
            				((TaskManage)taskDownList.get(i)).threadNotify();
            				runningList.remove(i);
							runningList.add(i,new Boolean(true));
						}	
            		}
    			}
    		}
    		if(temp.equals("暂停"))
    		{
    			int i = tableDown.getSelectedRow();
    			if(i == -1)
    			{
    				JOptionPane.showMessageDialog(null,"请先选择一行进行操作","报错",JOptionPane.ERROR_MESSAGE);
    				System.out.println(i);
    			}
    			else
    			{
					((TaskManage)taskDownList.get(i)).stopFlag = true;
					runningList.remove(i);
					runningList.add(i,new Boolean(false));	
    			}
    		}
    		
    		if(temp.equals("全部开始"))
    		{
    			allRun();
    		}
    		
    		if(temp.equals("全部暂停"))
    		{
    			for(int i = 0;i < taskDownList.size();i++)
    			{
    				((TaskManage)taskDownList.get(i)).stopFlag = true;
    			}
    			for(int i = 0;i < taskDownList.size();i++)
    			{
    				runningList.remove(i);
					runningList.add(i,new Boolean(false));
				}
    		}
    		
    		if(temp.equals("删除"))
    		{
    			int i = tempTable.getSelectedRow();
    			if(i == -1)
    			{
    				JOptionPane.showMessageDialog(null,"请先选择一行进行操作","报错",JOptionPane.ERROR_MESSAGE);
    				System.out.println(i);
    			}
    			else
    			{
    				int option = JOptionPane.showConfirmDialog(null,"您真的删除此任务!","删除",JOptionPane.YES_NO_OPTION);
    				
    				if(!(option == JOptionPane.YES_OPTION))
    				{
    					return;
    				}
    				
    				//当前是tableDown--------------------------------------------------------
					if(tempTable.equals(tableDown))
					{
						//将选择的线程终止掉-------------------------------------------------
        				TaskManage tempTaskManager = (TaskManage)taskDownList.get(i);
        				tempTaskManager.stopFlag = true;
        				tempTaskManager.changeFlag = true;
        				for(int j = 0;j < tempTaskManager.taskThreadList.size();j++)
        				{
        					((TaskThread)tempTaskManager.taskThreadList.get(j)).stopFlag = true;
        				}
        				
						//对表格进行同步处理--------------------------------------------------- 
						synchronized(tableDownDetail)
						{
							ListChangeThread.deletedDownChanged(i);
						}
						
						bottomCard.show(panelRightBottom,"default");
					}
					
					//当前是tableFinished-----------------------------------------------------
					else if(tempTable.equals(tableFinished))
					{
						//对表格进行同步处理--------------------------------------------------- 
						synchronized(tableFinishedDetail)
						{
							ListChangeThread.deletedFinishedChanged(i);
						}
						bottomCard.show(panelRightBottom,"default");
					}
					
					//当前是tableDeleted-----------------------------------------------------
					else if(tempTable.equals(tableDeleted))
					{
						//对表格进行同步处理--------------------------------------------------- 
						synchronized(tableDeletedDetail)
						{
							ListChangeThread.deletedDeletedChanged(i);
						}
						bottomCard.show(panelRightBottom,"default");
					}		
    			}
    		}
    		
    		if(temp.equals("重新添加到下载列表"))
    		{
    			int i = tempTable.getSelectedRow();
    			if(i == -1)
    			{
    				JOptionPane.showMessageDialog(null,"请先选择一行进行操作","报错",JOptionPane.ERROR_MESSAGE);
    				System.out.println(i);
    			}
    			else
    			{
    				if(((TaskManage)taskDeletedList.get(i)).totalDownLength == ((TaskManage)taskDeletedList.get(i)).fileLength)
    				{
    					JOptionPane.showMessageDialog(null,"该任务已经下载完毕!","报错",JOptionPane.ERROR_MESSAGE);
    				}
    				else
    				{
    					ListChangeThread.downDeletedChanged(i);
    					
    					bottomCard.show(panelRightBottom,"default");
					}
				}
			}
    		
    		if(temp.equals("退出"))
    		{
    			System.out.println("退出");
    			dispose();
    			exitSave();    	    
    			System.exit(0);
    		}
    	}
    }
    
    /**
     *弹出式菜单显示监听---------------------------------------------------------------
     **/
    class PopupListener extends MouseAdapter 
  	{
    	public void mouseReleased(MouseEvent e) 
    	{
    		if(tableDownFlag)
    		{
    			popMenuItems[0].setEnabled(true);
    			popMenuItems[1].setEnabled(true);
    			popMenuItems[2].setEnabled(true);
    			popMenuItems[3].setEnabled(true);  			
    			popMenuItems[4].setEnabled(false);		
    		}
    		else if(tableFinishedFlag)
    		{
    			popMenuItems[0].setEnabled(false);
    			popMenuItems[1].setEnabled(false);
    			popMenuItems[2].setEnabled(false);
    			popMenuItems[3].setEnabled(false);
    			popMenuItems[4].setEnabled(false);
    		}
    		else
    		{
    			popMenuItems[0].setEnabled(false);
    			popMenuItems[1].setEnabled(false);
    			popMenuItems[2].setEnabled(false);
    			popMenuItems[3].setEnabled(false);
    			popMenuItems[4].setEnabled(true);
    		}
      		maybeShowPopup(e);
    	}
    	private void maybeShowPopup(MouseEvent e) 
    	{
      		if(e.isPopupTrigger()) 
      		{
        		popUp.show(e.getComponent(), e.getX(), e.getY());
      		}
    	}
  	}
    
    /**
     *菜单组件事件监听------------------------------------------------------------------
     **/
    class MenuItemListener implements ActionListener
    {
    	public void actionPerformed(ActionEvent e)
    	{
    		String temp = ((JMenuItem)e.getSource()).getText();
    		if(temp.equals("新建任务"))
    		{
	   			NewDialog newDialog = new NewDialog(null,true);
    			newDialog.show();
    		}
    		
    		if(temp.equals("全部开始"))
    		{
    			allRun();
    		}
    		if(temp.equals("全部暂停"))
    		{
    			for(int i = 0;i < taskDownList.size();i++)
    			{
    				((TaskManage)taskDownList.get(i)).stopFlag = true;
    			}
    			for(int i = 0;i < taskDownList.size();i++)
    			{
    				runningList.remove(i);
					runningList.add(i,new Boolean(false));
				}
    		}
    		if(temp.equals("MP3"))
    		{
    			try
    			{
    				Process p = null;

    				p = Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE mp3.baidu.com");
   					p.waitFor();
    			}
    			catch(Exception e1)
    			{
    				e1.printStackTrace();
    			}
			}
			
			if(temp.equals("软件"))
    		{
    			try
    			{
    				Process p = null;

    				p = Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE www.newhua.com/");
   					p.waitFor();
    			}
    			catch(Exception e1)
    			{
    				e1.printStackTrace();
    			}
			}
			
			if(temp.equals("游戏"))
    		{
    			try
    			{
    				Process p = null;

    				p = Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE www.yxdown.com/");
   					p.waitFor();
    			}
    			catch(Exception e1)
    			{
    				e1.printStackTrace();
    			}
			}
			
			if(temp.equals("网格"))
    		{
    			if(!gridFlag)
    			{
    				tableDown.setShowGrid(true);
    				tableFinished.setShowGrid(true);
    				gridFlag = true;
    			}
    			else
    			{
    				tableDown.setShowGrid(false);
    				tableFinished.setShowGrid(false);
    				gridFlag = false;
    			}
			}
			
			if(temp.equals("详细情况"))
    		{
    			if(!detailFlag)
    			{
    				jspRight.setBottomComponent(panelRightBottom);
    				jspRight.setDividerLocation(350);
    				detailFlag = true;
    			}
    			else
    			{
    				jspRight.remove(panelRightBottom);
    				detailFlag = false;
    			}
			}
			
			if(temp.equals("新建数据库"))
    		{
    			clearUp();
    			System.out.println("Old index:"+index);
    			index++;
    			currentIndex = index;
    			System.out.println("New index:"+index);
			}
			
			if(temp.equals("打开旧数据库"))
    		{
    			JFileChooser fileChooser = new JFileChooser();
    			fileChooser.setCurrentDirectory(new File(".\\Info\\"));
				if(fileChooser.showOpenDialog(null)==JFileChooser.CANCEL_OPTION)
    	   		{
   					return;
   	   			}
   	   			//清理工作---------------------------------------------------------------
    			clearUp();

⌨️ 快捷键说明

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