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

📄 javaants.java

📁 这是一个基于java的多线程下载工具!大家用用看怎样
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.tree.*;
import javax.swing.border.*;
public class javaants extends JFrame{
  
  //申明菜单栏、菜单条、子菜单、菜单项、工具栏、复选框、按钮、构造组件、容器
  private JMenu file,edit,download,view,option,tool,help;
  private JMenuItem exit,add,preference,bookmark;
  private static JMenuItem start,stop;
  private JMenuItem helptopic,about;
  private JCheckBoxMenuItem istoolbar,isstatusbar;
  private JMenuBar menubar;
  private JToolBar toolbar;
  private JButton addBut,helpBut;
  private static JButton startBut,stopBut;
  private JButton preferenceBut,exitBut;
  private JComponent left,right;
  Listener listener;
  private Container contentPane;
  private JSplitPane leftsp;
  JScrollPane scrollPane;//	
 
  JPanel panel;//面板
  //static JProgressBar pb;
  JLabel label,statusBar;//标签
  JTree tree;
  DefaultTreeCellRenderer render;
  
  
  public javaants(String name){
    super(name);
    init();
  }

  /*初始化程序界面*/ 
  private void init(){
  	//设置容器
  	render=new DefaultTreeCellRenderer();
  	render.setBackgroundNonSelectionColor(Color.white);
  	render.setTextNonSelectionColor(Color.black);
  	render.setTextSelectionColor(Color.red);
  	tree=new JTree(createNodes());
  	tree.setCellRenderer(render);
  	tree.setRootVisible(true);
  	//tree.setEditable(true);
  	tree.setBackground(Color.white);
  	
  	
  	label=new JLabel("进度监控:");
  	label.setForeground(Color.blue);
  	statusBar=new JLabel("状态栏");
  	
  	
    leftsp=new JSplitPane();
    leftsp.setContinuousLayout(true);
    leftsp.setDividerSize(5);
    leftsp.setDividerLocation(200);
    left=(JComponent)leftsp.getLeftComponent();
    left.setBackground(Color.white);
    right=(JComponent)leftsp.getRightComponent();
    right.setBackground(Color.white);
    
    panel=new JPanel();
    panel.setBackground(Color.white);
    //pb=new JProgressBar();
   
    panel.add(label);
    //panel.add(pb);
    right.add(panel,BorderLayout.NORTH);
    contentPane=getContentPane();
    
    //添加scrollPane
    scrollPane=new JScrollPane(tree);
    scrollPane.setBackground(Color.pink);
    left.add(scrollPane);
    
    listener=new Listener();    
    toolbar=new JToolBar();
    menubar=new JMenuBar();
    
    //实现文件菜单
    file=new JMenu("文件");
    exit=new JMenuItem("退出");
    exit.addActionListener(listener);
    exitBut=new JButton("退出");
    exitBut.setToolTipText("退出");
    exitBut.addActionListener(listener);
    file.add(exit);
    
    //实现编辑菜单
    edit=new JMenu("编辑");
    add=new JMenuItem("添加");
    add.addActionListener(listener);
    addBut=new JButton("添加");
    addBut.setToolTipText("添加");
    addBut.addActionListener(listener);
    edit.add(add);
    
    //实现下载菜单
    download=new JMenu("下载");
    start=new JMenuItem("开始");
    start.addActionListener(listener);
    start.setEnabled(false);
    startBut=new JButton("开始");
    startBut.addActionListener(listener);
    startBut.setEnabled(false);
    startBut.setToolTipText("开始");
    stopBut=new JButton("停止");
    stopBut.addActionListener(listener);
    stopBut.setToolTipText("停止");
    stopBut.setEnabled(false);
    stop=new JMenuItem("停止");
    stop.addActionListener(listener);
    stop.setEnabled(false);
    download.add(start);
    download.add(stop);

    //实现可视化菜单
    view=new JMenu("视图");
    istoolbar=new JCheckBoxMenuItem("工具栏");
    isstatusbar=new JCheckBoxMenuItem("状态栏");
    view.add(istoolbar);
    view.add(isstatusbar);

    //实现选项菜单
    option=new JMenu("选项");
    preference=new JMenuItem("配置");
    preference.addActionListener(listener);
    preferenceBut=new JButton("配置");
    preferenceBut.setToolTipText("配置");
    preferenceBut.addActionListener(listener);
    option.add(preference);
    
    //实现工具菜单
    tool=new JMenu("工具");
    bookmark=new JMenuItem("书签");
    bookmark.addActionListener(listener);
    tool.add(bookmark);

    //实现帮助菜单
    help=new JMenu("帮助");
    helptopic=new JMenuItem("主题帮助");
    helptopic.addActionListener(listener);
    helpBut=new JButton("帮助");
    helpBut.setToolTipText("帮助");
    helpBut.addActionListener(listener);
    about=new JMenuItem("关于制作室...");
    about.addActionListener(listener);
    help.add(helptopic);
    help.add(about);
   
    //添加菜单进菜单栏
    menubar.add(file);
    menubar.add(edit);
    menubar.add(download);
    menubar.add(view);
    menubar.add(option);
    menubar.add(tool);
    menubar.add(help);

    //向工具栏添加按钮
    toolbar.add(startBut);
    toolbar.add(stopBut);
    toolbar.add(addBut);
    toolbar.add(preferenceBut);
    toolbar.addSeparator();
    toolbar.add(helpBut);
    toolbar.addSeparator();
    toolbar.add(exitBut);
    
    //设置面板布局
    contentPane.add(toolbar,BorderLayout.NORTH);
    contentPane.add(leftsp,BorderLayout.CENTER);
    contentPane.add(statusBar,BorderLayout.SOUTH);
    setJMenuBar(menubar);
  }
  
  private DefaultMutableTreeNode createNodes(){
  	//向目录树里添加节点
  	DefaultMutableTreeNode rootNode=new DefaultMutableTreeNode("文件夹");
  	DefaultMutableTreeNode missionState=new DefaultMutableTreeNode("下载任务");
  	DefaultMutableTreeNode downDate=new DefaultMutableTreeNode("已下载");
  	DefaultMutableTreeNode today=new DefaultMutableTreeNode("今天");
  	DefaultMutableTreeNode yesterday=new DefaultMutableTreeNode("昨天");
  	DefaultMutableTreeNode lastWeek=new DefaultMutableTreeNode("上周");
  	DefaultMutableTreeNode normal=new DefaultMutableTreeNode("下载状态");
  	DefaultMutableTreeNode running=new DefaultMutableTreeNode("正在下载");
  	//实现目录树的功能
  	rootNode.add(missionState);
  	rootNode.add(downDate);
  	downDate.add(today);
  	downDate.add(yesterday);
  	downDate.add(lastWeek);
  	missionState.add(normal);
  	missionState.add(running);
  	return rootNode;
  }
  
  /*public static JProgressBar getProgressBar(){
  	return pb;
  }*/
  
  //实现启动按钮
  public static void setStartTrue(){
  	startBut.setEnabled(true);
  	start.setEnabled(true);
  }
  
  public static void setStartFalse(){
  	startBut.setEnabled(false);
  	start.setEnabled(false);
  }
  
  //实现停止按钮
  public static void setStopTrue(){
  	stopBut.setEnabled(true);
  	stop.setEnabled(true);
  }
  
  public static void setStopFalse(){
  	stopBut.setEnabled(false);
  	stop.setEnabled(false);
  }
  //实现添加按钮
  public void showAddDialog(){
  	AddDialog ad=new AddDialog(this);
  	ad.setSize(380,340);
  	ad.setModal(true);
  	ad.center();
  	ad.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  	ad.show();
  }
  //实现Prefference按钮
  public void showPrefference(){
    Prefference p=new Prefference(this);
    p.setSize(380,320);
    p.setModal(true);
    p.center();
    p.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    p.show();
  }
  //实现关于按钮
  public void showAbout(){
  	    About about=new About(this);
        about.setSize(450,380);
        about.setModal(false);
        about.center();
        about.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        /*about.addWindowListener(new WindowAdapter(){
          public void windowClosed(WindowEvent e){
            about.dispose();
          }
        });*/
        about.show();
  }
  
  //实现监听
  class Listener implements ActionListener{
    public void actionPerformed(ActionEvent e){
      String arg=e.getActionCommand();
      if(arg=="退出"){
        System.exit(0);
      }
      else if(arg=="添加"){
      	showAddDialog();//
      }
      else if(arg=="开始"){
        Utility.stop=false;
        DownEnd de=new DownEnd();
        de.start();
        SplitFile split=new SplitFile();
        split.start();     
      }
      else if(arg=="停止"){
      	stopBut.setEnabled(false);
      	startBut.setEnabled(true);
      	Utility.stop=true;
      }
      else if(arg=="配置"){
        showPrefference();
      }
      else if(arg=="书签"){
      }
      else if(arg=="主题帮助"||arg=="帮助"){
        final Help help=new Help("帮助");
        help.setSize(380,340);
        Center c=new Center(help);
        c.center();
       help.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
       /* help.addWindowListener(new WindowAdapter(){
          public void windowClosed(WindowEvent e){
            help.dispose();
          }
        });*/
        help.setVisible(true);
      }
      else if(arg=="关于制作室..."){
        showAbout();
        
      }
    }
  }
}

⌨️ 快捷键说明

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