如何在java中创建加载栏

如何在java中创建加载栏,java,swing,components,progress-bar,Java,Swing,Components,Progress Bar,我想知道当我点击一个按钮时,如何为进度条设置一个循环。 我尝试了一个循环,但这是浪费时间。我已经附上了下面我想要的图片。 下面是一个简单的进度条示例,当您将鼠标悬停在按钮上(基于图片)时,进度条会继续前进,一旦鼠标悬停在按钮上,您就可以在线程中执行背景内容:- import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JF

我想知道当我点击一个按钮时,如何为进度条设置一个循环。 我尝试了一个循环,但这是浪费时间。我已经附上了下面我想要的图片。

下面是一个简单的进度条示例,当您将鼠标悬停在按钮上(基于图片)时,进度条会继续前进,一旦鼠标悬停在按钮上,您就可以在线程中执行背景内容:-

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;

public class GUI extends JFrame 
{
boolean isMouseOver = false;
int count = 0;

public GUI()
{
    this.setTitle("Progress Bar");
    this.setBounds(100, 100, 407, 119);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().setLayout(null);

    JProgressBar progressBar = new JProgressBar();
    progressBar.setBounds(10, 45, 371, 22);
    this.getContentPane().add(progressBar);

    JButton btnMousOver = new JButton("Mouse Over");
    btnMousOver.addMouseListener(new MouseAdapter()
    {
        public void mouseEntered(MouseEvent evt)
        {
            isMouseOver = true;
            btnMousOver.setEnabled(false);
            Thread go = new Thread()
            {
                public void run()
                {
                    while (isMouseOver && count < 101)
                    {
                        count = count + 2;
                        progressBar.setValue(count);
                        // do some stuffs here
                        try
                        {
                            Thread.sleep(100);
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }
                    }
                }
            };
            go.start();

        }

        public void mouseExited(MouseEvent evt)
        {
            isMouseOver = false;
            btnMousOver.setEnabled(true);
        }

        public void mousePressed(MouseEvent evt)
        {
            JOptionPane.showMessageDialog(null, "Mouse CLicked");
        }

        public void mouseReleased(MouseEvent evt)
        {
            JOptionPane.showMessageDialog(null, "Mouse released");
        }
    });
    btnMousOver.setBounds(142, 11, 108, 23);

    this.getContentPane().add(btnMousOver);
    this.getContentPane().add(progressBar);
    this.setLocationRelativeTo(null);
    this.setVisible(true);

}

public static void main(String[] args)
{
    new GUI();
}
}
import java.awt.event.MouseAdapter;
导入java.awt.event.MouseEvent;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JOptionPane;
导入javax.swing.JProgressBar;
公共类GUI扩展JFrame
{
布尔值isMouseOver=false;
整数计数=0;
公共图形用户界面()
{
本文件的标题为“进度条”;
这个.挫折(100100407119);
此.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(null);
JProgressBar progressBar=新的JProgressBar();
前进杆.立根(10,45,371,22);
this.getContentPane().add(progressBar);
JButton btnMousOver=新JButton(“鼠标悬停”);
添加mouseListener(新的MouseAdapter()
{
公共无效mouseenterned(MouseEvent evt)
{
isMouseOver=真;
btnMousOver.setEnabled(false);
线程go=新线程()
{
公开募捐
{
while(isMouseOver&计数<101)
{
计数=计数+2;
progressBar.setValue(计数);
//在这里做些事情
尝试
{
睡眠(100);
}
捕捉(中断异常e)
{
e、 printStackTrace();
}
}
}
};
go.start();
}
公共无效mouseExited(MouseEvent evt)
{
isMouseOver=错误;
btnMousOver.setEnabled(true);
}
公共无效鼠标按下(MouseEvent evt)
{
showMessageDialog(null,“鼠标单击”);
}
公共无效MouseEvent evt(MouseEvent evt)
{
showMessageDialog(null,“鼠标释放”);
}
});
btnMousOver.setBounds(142,11,108,23);
this.getContentPane().add(btnMousOver);
this.getContentPane().add(progressBar);
此.setLocationRelativeTo(空);
此.setVisible(true);
}
公共静态void main(字符串[]args)
{
新GUI();
}
}

首先你需要阅读这篇文章。然后,您需要创建进度对话框,将其传输给SwingWorker,并在propgress发生更改时进行更新。您能给出迄今为止尝试的代码吗?是一个很好的例子,但没有对话框。@chanisajayawardana你所说的
如何为进度条设置循环是什么意思?
?非常感谢Null saint先生……它工作得很好:)我能知道一件小事吗。当我点击“鼠标悬停”时,我想将进度值增加2按钮。每次我移动鼠标时,它都会增加2。@chanisajayawardana然后不是count++make it count=count+2 count是增量我的意思是我想将进度条增加2,但当我把指针放在一边时它应该停止……我再次移动按钮,它应该增加2……我已经这样做了……我想知道热增加和停止加载时,我把指针远离按钮。