-
2021-04-22 09:24:51
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Progress extends JFrame {
JProgressBar current;
JTextArea out;
JButton find;
Thread runner;
int num = 0;
public Progress() {
super("Progress");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setLayout(new FlowLayout());
current = new JProgressBar(0, 2000);
current.setValue(0);
current.setStringPainted(true);
pane.add(current);
setContentPane(pane);
}
public void iterate() {
while (num < 2000) {
current.setValue(num);
try {
Thread.sleep(1000);
} catch (InterruptedException e) { }
num += 95;
}
}
public static void main(String[] arguments) {
Progress frame = new Progress();
frame.pack();
frame.setVisible(true);
frame.iterate();
}
}
更多相关内容 -
Java Swing 进度条
2019-07-27 02:26:55NULL 博文链接:https://xbgd.iteye.com/blog/726256 -
Java Swing JProgressBar进度条的实现示例
2020-08-25 07:20:57主要介绍了Java Swing JProgressBar进度条的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Java Swing进度条显示问题 - Java / Java SE
2021-03-16 20:12:38进度条出来了,但是不显示进度,以下是完整代码:Java code:package ui;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.event....进度条出来了,但是不显示进度,以下是完整代码:
Java code:
package ui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ProgressMonitorInputStream;
import javax.swing.SwingConstants;
public class DataImporter extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JPanel p = new JPanel();
JButton btn = new JButton("选择文件");
JLabel status = new JLabel("", SwingConstants.CENTER);
public DataImporter() {
super("数据导入器");
setBounds(350, 250, 300, 150);
setMinimumSize(new Dimension(300, 150));
setAlwaysOnTop(true);
Container c = getContentPane();
btn.setToolTipText("请选择要导入的数据文件");
btn.setPreferredSize(new Dimension(100, 30));
btn.setFocusPainted(false);
p.add(btn);
status.setForegroun
-
Java Swing:进度条字体颜色修改
2021-03-13 02:01:47最近无聊想玩一玩gui,在自定义进度条时发现了一个小问题,进度条的背景颜色和前景颜色都可以使用JProgressBar本身自带的方法修改,但是前面的字体颜色却修改不了,造成修改背景颜色后字体的颜色会和背景颜色相互...最近无聊想玩一玩gui,在自定义进度条时发现了一个小问题,进度条的背景颜色和前景颜色都可以使用JProgressBar本身自带的方法修改,但是前面的字体颜色却修改不了,造成修改背景颜色后字体的颜色会和背景颜色相互对冲,整个外观非常的丑陋。一开始去百度了一堆发现好像没有一个真正的解决方法。
后来去查看各种API,发现javax.swing.plaf.basic包中BasicProgressBarUI类和进度条的颜色有些关联,然后去看了下该类的源代码(位置在JRE System Library/rt.jar/javax.swing.plaf.basic/BasicProgressBarUI),里面果然发现了跟颜色有关的变量 注释的意思大概是一个字体颜色是初始颜色,另一个字体颜色是进度条覆盖字体时的颜色,具体看下我的截图就知道了。
接着找下关于该变量的信息,在这个类里查找这两个变量,定位到如下部分: 再去UIManager类里面找到了一个put(Object key, Object value)方法,既然颜色从UIManager里面获取,那么颜色的修改应该也是在这里修改。尝试了一下,果然有效,下面是关键的两行代码:
//未覆盖前的进度条颜色
UIManager.put("ProgressBar.selectionBackground",Color.RED);
//覆盖后的进度条颜色
UIManager.put("ProgressBar.selectionForeground",Color.BLACK)
效果图片:
注意一点:这两行代码要在放在实例化JProgressBar之前,否则需要在这两行代码后面加上JProgressBar对象的repaint()方法来刷新该组件。
相关代码:
package com.hlx.JProgressBar;
import java.awt.Color;
import javax.swing.JProgressBar;
public class MyJProgressBar extends JProgressBar{
public MyJProgressBar(){
this.setSize(300, 100);
this.setValue(100);
this.setForeground(new Color(252,221,219));
this.setBounds(249, 237, 300, 100);
this.setVisible(true);
}
}
package com.hlx.JFrame;
import javax.swing.JFrame;
public class MyFrame extends JFrame {
public MyFrame(){
initFrame();
}
private void initFrame() {
this.setVisible(false);
this.setSize(800, 600);
this.setTitle("MyFrame");
this.setResizable(false);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setLocationRelativeTo(null);
}
}
package com.hlx.JProgressBar;
import java.awt.Color;
import javax.swing.UIManager;
import com.hlx.JFrame.MyFrame;
public class JProgressBarTest {
public static void main(String[] args) {
MyFrame frame = new MyFrame();
//未覆盖前的进度条颜色
UIManager.put("ProgressBar.selectionBackground",Color.RED);
//覆盖后的进度条颜色
UIManager.put("ProgressBar.selectionForeground",Color.BLACK);
frame.getContentPane().setLayout(null);
MyJProgressBar myproBar = new MyJProgressBar();
frame.getContentPane().add(myproBar);
frame.setVisible(true);
frame.setVisible(true);
myproBar.setStringPainted(true);
new Thread(){
public void run(){
for(int i=0;i<=100;i++){
try{
Thread.sleep(100);
}catch(InterruptedException e){
e.printStackTrace();
}
myproBar.setValue(i);
}
myproBar.setString("升级完成!");
}
}.start();
}
}
-
JAVA SWING 多线程进度条
2021-07-31 13:31:28package zikao.swing; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; public class JProgressBarTest2 { /* JProgressBar使用的步骤: 1,创建JProgressBar的对象 public ...package zikao.swing; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; public class JProgressBarTest2 { /* JProgressBar使用的步骤: 1,创建JProgressBar的对象 public JProgressBar(int orient,int min,int max): orient: 方向 min: 最小值 max: 最大值 2,设置属性 setBorderPainted(boolean b): 设置进度条是否有边框 setIndeterminate(boolean newValue): 设置该进度条是不是进度不确定的精度条 setStringPainted(boolean b): 设置进度条是否显示当前完成百分比 3,获取和设置当前进度条的进度状况 setValue(int n): 设置当前进度值 double getPercentComplete(): 获取进度条的完成百分比 String getString(): 返回进度字符串的当前值 */ JFrame jFrame = new JFrame("JProgressBar测试"); JProgressBar bar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); JCheckBox indeterminate = new JCheckBox("不确定进度"); JCheckBox noBorder = new JCheckBox("不绘制边框"); public void init() { //处理复选框的点击行为 indeterminate.addActionListener(e -> { //获取indeterminate有没有被选中 boolean selected = indeterminate.isSelected(); //设置当前进度条不确定进度 bar.setIndeterminate(selected); bar.setStringPainted(!selected); }); noBorder.addActionListener(e -> { boolean selected = noBorder.isSelected(); bar.setBorderPainted(!selected); }); Box vBox = Box.createVerticalBox(); vBox.add(indeterminate); vBox.add(noBorder); //设置进度条的默认属性 bar.setStringPainted(true); bar.setBorderPainted(true); //把当前窗口的布局方式改为FlowLayout jFrame.setLayout(new FlowLayout()); jFrame.add(vBox); jFrame.add(bar); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.pack(); jFrame.setVisible(true); SimulatorActivity simulaterActivity = new SimulatorActivity(bar.getMaximum()); new Thread(simulaterActivity).start(); Timer timer = new Timer(100, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { int current = simulaterActivity.getCurrent(); bar.setValue(current); } }); timer.start(); //监听进度条的变化 bar.addChangeListener(e -> { int value = bar.getValue(); if (value == simulaterActivity.getAmount()) { timer.stop(); } }); } private static class SimulatorActivity implements Runnable { //记录任务总量 private final int amount; //记录当前完成量 private volatile int current; public SimulatorActivity(int amount) { this.amount = amount; } public int getAmount() { return amount; } public int getCurrent() { return current; } @Override public void run() { while (current < amount) { try { Thread.currentThread().sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } current++; } } } public static void main(String[] args) { new JProgressBarTest2().init(); } }
效果与上次主线程休眠一致
-
JAVA SWING 实现模拟进度条效果
2021-07-30 22:13:32import java.awt.*; public class JProgressBarTest { /* JProgressBar使用的步骤: 1,创建JProgressBar的对象 public JProgressBar(int orient,int min,int max): orient: 方向 min: 最小值 max: 最大值 ... -
JAVA Swing 自定义进度条样式(简单实现)
2021-03-17 20:19:59本帖最后由 lp563161210 于 2015-8-26 18:44 编辑效果浏览自定义效果:QQ截图20150826182536.png (41.28 KB, 下载次数: 88)5年前 上传java默认效果:111.png (6.36 KB, 下载次数: 76)5年前 上传准备工作——什么是... -
Java Swing JProgressBar:进度条组件
2019-03-07 00:28:27进度条(JProgressBar)是一种以可视化形式显示某些任务进度的组件。JProgressBar 类实现了一个用于为长时间的操作提供可视化指示器的 GUI 进度条。在任务的完成进度中,进度条显示该任务完成的百分比。此百分比通常... -
Java Swing组件开发圆形进度条特效代码
2021-04-22 09:21:40采用Java语言编写,适合用在Java Swing程序里面。简单示例代码:CircleProgressBar progressBar = new CircleProgressBar(); //实例化progressBar.setMinimumProgress(0); //设置最小进度值progressBar.... -
java Swing 进度条 时间进度条
2013-06-28 15:15:59项目中用到了java swing 的时间进度滚动条,所以写了一个 测试类,供大家参考,下面是 具体的实现类 package com.original.client.widget.execcenter; import java.awt.BorderLayout; import java.awt.Color; ... -
Java Swing 之进度条的使用(简单版)
2017-12-08 15:13:40[java] view ... * java swing 之进度条的使用 * @author gao */ package com.gao; import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing. -
Swing进度条组件的使用
2019-12-18 17:53:01进度条(JProgressBar)是一种以可视化形式显示某些任务...Java Swing也有进度条组件:JProgressBar ,那么JProgressBar 要怎么用呢?接下来小编就来介绍一下进度条的使用 一、构造方法 JProgressBar常用的构造方... -
Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(二)
2019-03-30 01:37:56NULL 博文链接:https://yshjava.iteye.com/blog/1326539 -
16、Java Swing JProgressBar:进度条组件
2020-10-26 16:37:25**进度条(JProgressBar)**是一种以可视化形式显示某些任务进度的组件。 JProgressBar 类实现了一个用于为长时间的操作提供可视化指示器的 GUI 进度条。在任务的完成进度中,进度条显示该任务完成的百分比。此... -
Java Swing - 如何为进度条创建自定义UI
2021-03-17 20:19:35import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Rectangle;import java.awt.RenderingHints;import javax.swing.JComponent;import javax.swing.JFrame;import javax.... -
JavaSwing_2.11: JProgressBar(进度条)
2017-07-16 22:36:49JProgressBar,进度条。以可视化形式显示某些任务进度的组件。进度条中心可显示进度百分比的文本表示形式。当一个任务的进度长度未知时,可将进度条设置为不确定模式。不确定模式的进度条持续地显示动画来表示正进行... -
SWING进度条
2016-11-10 21:47:56SWING进度条 -
Java swing 带界面和进度条的多线程下载器实现
2022-04-16 15:23:07之前写过一个的【Java URLConnection类 实现多线程下载文件】,只是那个demo比较简陋。。。 今天我们来加上图形界面,其实下载部分的代码都是复用过来的。。。。 JFrame 主窗体,windows窗口,可缩放等等 ... -
java swing进度条只显示100.过程不显示问题
2017-10-31 04:43:50public void showFolderCopyProgressBar() { JFrame jf=new JFrame("复制文件夹"); jf.setSize(400,300); jf.setLocation(200,200); jf.setLayout(new FlowLayout()); JLabel jl1=new JLabel("源文件地址:");... -
java swing拷贝文件进度条
2019-08-03 01:26:20NULL 博文链接:https://hw1287789687.iteye.com/blog/2003105 -
Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
2021-02-12 18:30:09本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力。首先看一下效果图吧,原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label用来分别显示进度和进度信息,而Dialog的... -
在下载文件时使用swing GUI显示进度条
2021-03-09 01:04:58小编典典您的是经典的Swing并发问题。解决方案始终如一-在后台线程中运行长时间的代码,例如可以在SwingWorker中找到的代码。例如,import java.awt.FlowLayout;import java.beans.PropertyChangeEvent;import java.... -
Java swing 界面卡死问题的分析与解决
2021-03-08 01:16:230x00问题概述在用swing做一个项目的时候,发现程序在运行一个长时间任务的时候界面会卡死,直到任务完成。具体描述就是按下一个按钮执行任务,接着按钮就一直是按下的状态,界面卡死,直到这个任务完成才恢复正常。... -
Java Swing程序开发—右下角显示进度条
2015-04-15 19:56:30虽然自己不喜欢Java的GUI程序,但是工作原因,听从上级安排。 转入正题:这篇文章实现在桌面右下角显示一个进度条,显示当前程序运行的进度。而且鼠标能够拖动进度条。有需要的童鞋,可以直接拷贝代码过去使用! ... -
java swing 使用JProgressMonitor 创建进度条
2021-07-31 17:45:15package zikao.swing; import javax.swing.*; public class ProgressMonitorTest { /* ProgressMonitor的用法与ProgressBar相似 , ProgressMonitor可以直接创建一个进度对话框 提供的构造方法: public ...