Simulando uma porcentagem no JProgressBar e NetBeans

7 respostas
P

Galera, estou tentando simular uma porcentagem do JProgressBar, mas sempre printa a parte final ou seja 100%, como enchergar o andamento disso desde de 1% a 100%, parece que é muito rápido.

int minimum = 0;
int maximum = 100;
// Overlay a string showing the percentage done
jProgressBar1 = new javax.swing.JProgressBar(minimum, maximum);
// Set the value; the new value will be forced into the bar's range
for(int i = 0; i<=100;i++){
   int newValue = i;
   jProgressBar1.setValue(newValue);
   jProgressBar1.setStringPainted(true);
}

O outra pergunta, consigo adicionar uma imagem pela palheta de opções do NetBeans?

7 Respostas

D

sim, vai muito rápido, coloque algo assim pra deixar mais devagar:

try { Thread.sleep(20); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }

o 20 ali é que a thread vai esperar 20 ms antes de continuar, aí da tempo de ver o que ocorre, acho… qualquer coisa vai ajustando pra vc ver…

Sobre a imagem não sei…

flw

P

Não funcionou, a tela demora esse tempo para abrir, e não é possivel ver nada e fica no 100% direto, em uma situação real como eu definiria isso?

H

Vou te passar um codigo que simula o progresseBar é simples e facil de entender.

import java.awt.<em>;

import java.awt.event.</em>;

import java.util.*;
import javax.swing.<em>;

import javax.swing.Timer;

import javax.swing.event.</em>;
public class ProgressBar

{

public static void main(String[] args)

{

JFrame frame = new ProgressBarFrame();

frame.show();

}

}

class ProgressBarFrame extends JFrame

{

private Timer activitMonitor;

private JButton startButton;

private JTextArea textArea;

private JProgressBar progressBar;

private SimulatedActivity activity;
public ProgressBarFrame()
{
	setTitle("ProgressBar");
	setSize(300,200);
	addWindowListener(new WindowAdapter()
	{
		public void windowClosing(WindowEvent e)
		{
			System.exit(0);
		}
		
	});
	Container contentPane  = getContentPane();
    // esta área de texto contém o resultado gerado pela atividade
	textArea = new JTextArea();
	//configura o painel com botão e barra de progresso
	JPanel panel = new JPanel();
	startButton = new JButton();
	progressBar = new JProgressBar();
	
	panel.add(startButton);
	panel.add(progressBar);
	contentPane.add(new JScrollPane(textArea),"Center");
	contentPane.add(panel,"South");
	//configura a ação do botão
	startButton.addActionListener(new ActionListener()
	{
		public void actionPerformed(ActionEvent event)
		{
			progressBar.setMaximum(100);
			activity = new SimulatedActivity(1000);
			activity.start();
			activitMonitor.start();
			startButton.setEnabled(false);
		}
	});
	//configura a ação do temporizador
	activitMonitor = new Timer(500,new ActionListener()
	{
		public void actionPerformed(ActionEvent event)
		{
			int current = activity.getCurrent();
			//textArea.append(current + "\n");
			progressBar.setString("JESUS TE AMA");
			progressBar.setValue(current);
			
			if(current == activity.getTarget())
			{
				activitMonitor.stop();
				startButton.setEnabled(true);
			}
		}
	});

}

}

class SimulatedActivity extends Thread

{

private int current,target;

public SimulatedActivity(int t)

{

current = 0;

target = t;

}

public int getCurrent()

{

return current;	

}

public int getTarget()

{

return target;

}

public void run()

{

while(current < target && !interrupted())

{

try{

sleep(100);

}catch(InterruptedException e){

return;

}

current++;

}
}

}

Beleza falou.

P

Muito bom, funcionou cara 5 estrelas.

H

E ai ficou bom o codigo.
Agora voce pode me ajudar voce sabe como eu faço para transformar uma imagem em icone.
Valeu

L

Hamses,

Se for da maneira tradicional posso te dar uma força…vamos lá:

Transformando uma imagem em ícone:

* Redimensionando a imagem.

  1. Selecione a imagem que você deseja que seja o ícone (geralmente é um logotipo);

    • Exemplo: logotipo.jpg
  2. Abra a imagem no programa de edição que preferir e reduza a mesma para o tamanho 16x16 ou 32x32 (pixels) e salve;

* Transformando o JPG em ícone (.ICO)

  1. No programa Paint do Windows, abra o arquivo logotipo.jg;

    • Abra o arquivo Logotipo.jpg já redimensionado (32x32 pixels) e salve com a seguinte opção:
  2. Salvar como…: Bitmap de 256 cores (*.bmp, *dib)
    Nome do arquivo: Logotipo.ico (neste caso o paint salva com o nome e extensão que você desejar)
    Botão Salvar

Se for isso mesmo que estava procurando, espero que ajude…
Até mais…

J

Estou usando NetBeans tb.Minha dúvida é o seguinte:
Quero colocar um progressBar no meu Form para mostrar o tempo que uma determinada consulta levará para ser finalizada.
Tenho que associar de alguma forma a thread com o progress bar?

Criado 31 de maio de 2006
Ultima resposta 4 de dez. de 2007
Respostas 7
Participantes 5