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

📄 suspendeddialog.java

📁 一款JAVA开发的类迅雷的多线程下载系统,希望对大家有帮助
💻 JAVA
字号:
package downfile;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import   java.awt.event.MouseMotionAdapter;   
import   java.awt.event.MouseEvent;   
import   java.awt.event.MouseAdapter;   
import java.net.URL;
import java.net.URLClassLoader;

import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import   javax.swing.JDialog;  
import javax.swing.JLabel;
import   javax.swing.JMenuItem;
import   javax.swing.JPanel;   
import   javax.swing.JPopupMenu;
import javax.swing.JToolTip;
import javax.swing.ToolTipManager;
    
class SuspendedPanel extends JPanel{
	public ImageIcon i;
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        URLClassLoader urlLoader1 = (URLClassLoader)this.getClass().getClassLoader();
    	URL url1 = null;
    	url1 = urlLoader1.findResource("images/main.jpg");
    	i = new ImageIcon(url1);
    	Image ii=i.getImage();
        g.drawImage(ii,0,0,40,40,this); 
    }
}
public class SuspendedDialog extends JDialog implements Runnable{   
          JLabel lb = new JLabel();             
          int mouseX = 0;   
          int mouseY = 0;   
          
          JPopupMenu popup = new JPopupMenu();
          JMenuItem openmenu = new JMenuItem("打开/隐藏");
  	      JMenuItem xinjianmenu = new JMenuItem("新建任务");
  	      JCheckBoxMenuItem spedialogmenu = new JCheckBoxMenuItem("悬浮窗");
  	      JMenuItem aboutmenu = new JMenuItem("关于下载器");
  	      JMenuItem exitmenu = new JMenuItem("退出");
  	      static JToolTip tip = new JToolTip();
  	      SuspendedPanel pane = pane = new SuspendedPanel(){
      	     public JToolTip createToolTip(){        		  
  	            return tip;
  	         }
          };
          public  SuspendedDialog(){     
                  
                  setUndecorated(true);
                  setAlwaysOnTop(true);
                                                      
                  
                  pane.setToolTipText("java下载器");
                  lb.setForeground(Color.BLUE);
                  pane.add(lb);
                  ToolTipManager.sharedInstance().setDismissDelay(1000000);// 10 seconds                  
                  
                  popup.add(openmenu);
                  popup.addSeparator();
                  popup.add(xinjianmenu);
                  popup.add(spedialogmenu);
                  popup.addSeparator();
                  popup.add(aboutmenu);
                  popup.addSeparator();
                  popup.add(exitmenu);
                  
                  openmenu.addActionListener(new ActionListener(){
                	 public void actionPerformed(ActionEvent e){                       
                		 if(MainFrame.main.isVisible()){
                			 MainFrame.main.setVisible(false);
                		 }
         		        else MainFrame.main.setVisible(true);
                	 }
                  });
                  
                  xinjianmenu.addActionListener(new ActionListener(){
                 	 public void actionPerformed(ActionEvent e){
                 		MainFrame.main.setVisible(true);
        				XinJianDialog xinjian = new XinJianDialog(MainFrame.main,"新建任务",MainFrame.tablemodel);
        	    		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        	            Dimension mainSize = xinjian.getSize();
        	    	    xinjian.setLocation((screenSize.width - mainSize.width) / 2,
        	                 (screenSize.height - mainSize.height) / 2);
        	    	    xinjian.setResizable(false);
        	    	    xinjian.setVisible(true);
                 	 }
                   });
                  spedialogmenu.setSelected(true);
                  spedialogmenu.addActionListener(new ActionListener(){
                 	 public void actionPerformed(ActionEvent e){
                 		 if(spedialogmenu.getState()){
                 			JSplashWindowPlus.dialog.setVisible(true);
                 			MainFrame.main.Spebutton.setSelected(true);
                 			MainFrame.main.spemenuitem.setSelected(true);
                 		 }else{
                 		    JSplashWindowPlus.dialog.setVisible(false);
                 		    MainFrame.main.Spebutton.setSelected(false);
                 		    MainFrame.main.spemenuitem.setSelected(false);
                 		 } 
                 	 }
                   });
                  
                  aboutmenu.addActionListener(new ActionListener(){
                 	 public void actionPerformed(ActionEvent e){
                 		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        	            Dimension mainSize = MainFrame.about.getSize();
        	    	    MainFrame.about.setLocation((screenSize.width - mainSize.width) / 2,
        	                 (screenSize.height - mainSize.height) / 2);
        	    	    MainFrame.about.setVisible(true);
                 	 }
                   });
                  
                  exitmenu.addActionListener(new ActionListener(){
                 	 public void actionPerformed(ActionEvent e){
                 		MainFrame.main.setVisible(false);
        				MainFrame.main.writeTreeNode();
        				for(int i=0;i<MainFrame.tablemodel.downloadingList.size();i++){
        					Download download = (Download)MainFrame.tablemodel.downloadingList.get(i);
        					if(download.getStatus() == Download.DOWNLOADING)
        					download.pause();
        				}
        				if(MainFrame.tablemodel.downloadingList.size()!=0){
        				try {
        					Thread.sleep(3000);
        				} catch (InterruptedException e1) {
        					e1.printStackTrace();
        				}        			
        				}
        				MainFrame.main.writeNode1();        				
        				System.exit(0);
                 	 }
                   });
                  
                  PopupListener treepo = new PopupListener(popup);
          	      pane.addMouseListener(treepo);
          	    
                  pane.addMouseListener(new MouseAdapter() {   
                          public void mousePressed(MouseEvent mouseEvent){   
                               if(mouseEvent.getButton() == mouseEvent.BUTTON1) {   
                                 mouseX = mouseEvent.getX();   
                                 mouseY = mouseEvent.getY();   
                          }   
                      }
                          public void mouseClicked(MouseEvent e){
                        	  if(e.getClickCount() == 2){
                        		  if(MainFrame.main.isVisible()) MainFrame.main.setVisible(false);
                   		        else MainFrame.main.setVisible(true);
                        	  }
                          }
                  }); 
                  pane.addMouseMotionListener(new MouseMotionAdapter(){   
                          public void mouseDragged(MouseEvent e){   
                            if(e.getModifiers() ==e.BUTTON1_MASK){     
                                  setLocation(getX() + e.getX() - mouseX,   
                                		  getY() + e.getY() - mouseY); 
                           }   
                       }   
                  });                    
                  setSize(40,40);  
                  setContentPane(pane);
          }
          public void run(){
        	  int j=0;
        	  while(true){
        		  if(MainFrame.tablemodel.downloadingList.size()!=0){
						String toolTips = "";
						for(int i=0;i<MainFrame.tablemodel.downloadingList.size();i++){							
							Download download = (Download) MainFrame.tablemodel.downloadingList.get(i);
							toolTips =toolTips +"<br>"+"文件名:"+download.getFileName()+"-速度:"
							+(float)download.getSpeed()/1024
							+"K/S-下载进度:"+(int)download.getProgress()+"%";
						}
						toolTips = "<html>"+toolTips+"</html>";
					   pane.setToolTipText(toolTips);
					   tip.setTipText(toolTips);
                       tip.updateUI();
					}else{
						pane.setToolTipText("java下载器");
					}
          		try {
  					Thread.sleep(1000);
  				 } catch (InterruptedException e) {
  					e.printStackTrace();
  				}
  			  if(MainFrame.tablemodel.downloadingList.size() == 0)
  				  lb.setText("");
  			  if(MainFrame.tablemodel.downloadingList.size()!=0){	 
  			     Download download = (Download) MainFrame.tablemodel.downloadingList.get(j);
  			     lb.setText(""+(int)download.getProgress()+"%");
  			     j++;
  			     if(j>=MainFrame.tablemodel.downloadingList.size()){
  				  j=0;
  			     }
          	}
          }
        }
          public void start(){
        	  Thread thread = new Thread(this);
        	  thread.start();
          }
  } 

⌨️ 快捷键说明

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