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

📄 progressmonitortest.java

📁 进度栏的应用。用timer()组件来控制时间
💻 JAVA
字号:


import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.Timer;


public class ProgressMonitorTest
{
   public static void main(String[] args)
   {
      JFrame frame = new ProgressMonitorFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.show();
   }
}

class ProgressMonitorFrame extends JFrame
{
   public ProgressMonitorFrame()
   {
      setTitle("ProgressMonitorTest");
      setSize(WIDTH, HEIGHT);

      Container contentPane = getContentPane();

      // this text area holds the activity output
      textArea = new JTextArea();

      // set up a button panel
      JPanel panel = new JPanel();
      startButton = new JButton("Start");
      panel.add(startButton);

      contentPane.add(new JScrollPane(textArea),
         BorderLayout.CENTER);
      contentPane.add(panel, BorderLayout.SOUTH);

      // set up the button action

      startButton.addActionListener(new
         ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               // start activity
               activity = new SimulatedActivity(1000);
               activity.start();

               // launch progress dialog
               progressDialog = new ProgressMonitor(
                  ProgressMonitorFrame.this,
                  "Waiting for Simulated Activity",
                  null, 0, activity.getTarget());

               // start timer
               activityMonitor.start();

               startButton.setEnabled(false);
            }
         });

      // set up the timer action

      activityMonitor = new Timer(500, new
         ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               int current = activity.getCurrent();

               // show progress
               textArea.append(current + "\n");
               progressDialog.setProgress(current);

               // check if task is completed or canceled
               if (current == activity.getTarget()
                  || progressDialog.isCanceled())
               {
                  activityMonitor.stop();
                  progressDialog.close();
                  activity.interrupt();
                  startButton.setEnabled(true);
               }
            }
         });
   }

   private Timer activityMonitor;
   private JButton startButton;
   private ProgressMonitor progressDialog;
   private JTextArea textArea;
   private SimulatedActivity activity;

   public static final int WIDTH = 300;
   public static final int HEIGHT = 200;
}

/**
   A similated activity thread.
*/
class SimulatedActivity extends Thread
{

   public SimulatedActivity(int t)
   {
      current = 0;
      target = t;
   }

   public int getTarget()
   {
      return target;
   }

   public int getCurrent()
   {
      return current;
   }

   public void run()
   {
      try
      {
         while (current < target && !interrupted())
         {
            sleep(100);
            current++;
         }
      }
      catch(InterruptedException e)
      {
      }
   }

   private int current;
   private int target;
}

⌨️ 快捷键说明

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