Helps Thread e Jprogress

2 respostas
E

estou fazendo um trabalho sobre threds e nao estou conseguindo fazer funcionar a barra de progresso. agradeço auxilio!!!

esta é a classe Trabalhador:
package atividade;  
      
    import javax.swing.JProgressBar;  
    import javax.swing.JTextField;  
      
    public class Trabalhador extends Thread {  
        private int qtde, temp;  
        private double valor, total;  
        JProgressBar progessBar;  
        JTextField metaEmp, totalEmp;  
          
        public Trabalhador(){  
            this(0,0,0,0, null,null,null);  
              
        }  
          
      
        public Trabalhador(int qtde, int temp, double valor, double total,  
                JProgressBar progessBar, JTextField metaEmp, JTextField totalEmp) {  
            super();  
            this.qtde = qtde;  
            this.temp = temp;  
            this.valor = valor;  
            this.total = total;  
            this.progessBar = progessBar;  
            this.metaEmp = metaEmp;  
            this.totalEmp = totalEmp;  
        }  
          
        public void run(){  
            synchronized (metaEmp.getText()) {  
                for(int i = 0; i < qtde; i++){  
                    try{  
                        total += valor;  
                        totalEmp.setText(total + "");  
                        metaEmp.setText((Double.parseDouble(metaEmp.getText()) + valor) + "");  
                        progessBar.setValue((int) Double.parseDouble(metaEmp.getText()));  
                        sleep((long) (Math.random() * temp));  
                    }catch(InterruptedException e){  
      
                    }  
                }  
            }  
      
          
      
        }}

Esta e a Tela:

package atividade;  
      
    import java.awt.BorderLayout;  
      
    public class Tela extends JFrame {  
      
        private JPanel contentPane;  
        private JTextField metaEmp;  
        private JTextField totalEmp;  
        private JTextField qtdeTb_1;  
        private JTextField tempTb_1;  
        private JTextField valorTb_1;  
        private JTextField totalTb_1;  
        private JTextField qtdeTb_2;  
        private JTextField tempTb_2;  
        private JTextField valorTb_2;  
        private JTextField totalTb_2;  
      
        /** 
         * Launch the application. 
         */  
        public static void main(String[] args) {  
            EventQueue.invokeLater(new Runnable() {  
                public void run() {  
                    try {  
                        Tela frame = new Tela();  
                        frame.setVisible(true);  
                    } catch (Exception e) {  
                        e.printStackTrace();  
                    }  
                }  
            });  
        }  
      
        /** 
         * Create the frame. 
         */  
        public Tela() {  
            setBackground(new Color(0, 0, 128));  
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            setBounds(100, 100, 629, 387);  
            contentPane = new JPanel();  
            contentPane.setBackground(Color.CYAN);  
            contentPane.setForeground(Color.BLACK);  
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));  
            setContentPane(contentPane);  
              
            JLabel lblMetaDaEmpresa = new JLabel("META DA EMPRESA :");  
            lblMetaDaEmpresa.setFont(new Font("Tahoma", Font.PLAIN, 18));  
              
              
            metaEmp = new JTextField();  
            metaEmp.setColumns(10);  
              
            final JProgressBar progressBar = new JProgressBar();  
            progressBar.setForeground(new Color(0, 255, 255));  
            progressBar.setBackground(new Color(0, 0, 255));  
              
                      
            JLabel lblTotalDaEmpresa = new JLabel("Total da Empresa:");  
              
            totalEmp = new JTextField();  
            totalEmp.setEditable(false);  
            totalEmp.setColumns(10);  
              
            JLabel lblTb = new JLabel("TB 1");  
            lblTb.setIcon(new ImageIcon(Tela.class.getResource("/img/images.png")));  
              
            JLabel lblTb_1 = new JLabel("TB 2");  
            lblTb_1.setIcon(new ImageIcon(Tela.class.getResource("/img/images.png")));  
              
            JLabel lblQtde = new JLabel("Qtde:");  
              
            JLabel lblTempo = new JLabel("Tempo:");  
              
            JLabel lblValor = new JLabel("Valor:");  
              
            qtdeTb_1 = new JTextField();  
            qtdeTb_1.setColumns(10);  
              
            tempTb_1 = new JTextField();  
            tempTb_1.setColumns(10);  
              
            valorTb_1 = new JTextField();  
            valorTb_1.setColumns(10);  
              
            totalTb_1 = new JTextField();  
            totalTb_1.setEditable(false);  
            totalTb_1.setColumns(10);  
              
            JLabel lblTotal = new JLabel("Total:");  
              
            JLabel label = new JLabel("Qtde:");  
              
            JLabel lblTempo_1 = new JLabel("Tempo:");  
              
            JLabel lblValor_1 = new JLabel("Valor:");  
              
            JLabel lblTotal_1 = new JLabel("Total:");  
              
            qtdeTb_2 = new JTextField();  
            qtdeTb_2.setColumns(10);  
              
            tempTb_2 = new JTextField();  
            tempTb_2.setColumns(10);  
              
            valorTb_2 = new JTextField();  
            valorTb_2.setColumns(10);  
              
            totalTb_2 = new JTextField();  
            totalTb_2.setEditable(false);  
            totalTb_2.setColumns(10);  
              
            JButton btnIniciar = new JButton("INICIAR \r\nPRODU\u00C7\u00C3O");  
            btnIniciar.setIcon(new ImageIcon(Tela.class.getResource("/img/play.png")));  
            btnIniciar.setFont(new Font("Tahoma", Font.PLAIN, 16));  
            btnIniciar.setToolTipText("");  
            GroupLayout gl_contentPane = new GroupLayout(contentPane);  
            btnIniciar.addActionListener(new ActionListener() {  
                public void actionPerformed(ActionEvent arg0) {  
                    try{  
                        double valorTb1 = Double.parseDouble(valorTb_1.getText());  
                        int qtdeTb1 = Integer.parseInt(qtdeTb_1.getText());  
                        int tempTb1 = Integer.parseInt(tempTb_1.getText());  
      
                        double valorTb2 = Double.parseDouble(valorTb_2.getText());  
                        int qtdeTb2 = Integer.parseInt(qtdeTb_2.getText());  
                        int tempTb2 = Integer.parseInt(tempTb_2.getText());  
      
                        Trabalhador trab1 = new Trabalhador(qtdeTb1, tempTb1, valorTb1,  valorTb2, progressBar, metaEmp, totalEmp);  
                        Trabalhador trab2 = new Trabalhador(qtdeTb2, tempTb2, valorTb2, valorTb2, progressBar, metaEmp, totalEmp);  
      
                        trab1.start();  
                        trab2.start();  
      
      
                    }catch(Exception e){  
      
                    }  
                }  
            });  
            gl_contentPane.setHorizontalGroup(  
                gl_contentPane.createParallelGroup(Alignment.LEADING)  
                    .addGroup(gl_contentPane.createSequentialGroup()  
                        .addContainerGap()  
                        .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                            .addGroup(gl_contentPane.createSequentialGroup()  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                                    .addGroup(gl_contentPane.createSequentialGroup()  
                                        .addComponent(lblTotalDaEmpresa)  
                                        .addPreferredGap(ComponentPlacement.UNRELATED)  
                                        .addComponent(totalEmp, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                    .addComponent(progressBar, GroupLayout.DEFAULT_SIZE, 578, Short.MAX_VALUE)  
                                    .addGroup(gl_contentPane.createSequentialGroup()  
                                        .addComponent(lblMetaDaEmpresa)  
                                        .addPreferredGap(ComponentPlacement.UNRELATED)  
                                        .addComponent(metaEmp, GroupLayout.PREFERRED_SIZE, 234, GroupLayout.PREFERRED_SIZE))  
                                    .addGroup(gl_contentPane.createSequentialGroup()  
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                                            .addComponent(lblTb)  
                                            .addGroup(gl_contentPane.createSequentialGroup()  
                                                .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING, false)  
                                                    .addComponent(lblValor, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)  
                                                    .addComponent(lblQtde, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)  
                                                    .addComponent(lblTempo, Alignment.LEADING))  
                                                .addGap(18)  
                                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                                                    .addComponent(valorTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                                                    .addComponent(tempTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                                                    .addComponent(qtdeTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))  
                                        .addGap(65)  
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                                            .addGroup(gl_contentPane.createSequentialGroup()  
                                                .addComponent(lblValor_1, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)  
                                                .addPreferredGap(ComponentPlacement.RELATED)  
                                                .addComponent(valorTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                            .addGroup(gl_contentPane.createSequentialGroup()  
                                                .addComponent(lblTempo_1, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)  
                                                .addPreferredGap(ComponentPlacement.RELATED)  
                                                .addComponent(tempTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                            .addGroup(gl_contentPane.createSequentialGroup()  
                                                .addComponent(label, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)  
                                                .addPreferredGap(ComponentPlacement.RELATED)  
                                                .addComponent(qtdeTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                            .addComponent(lblTb_1, GroupLayout.PREFERRED_SIZE, 84, GroupLayout.PREFERRED_SIZE))  
                                        .addPreferredGap(ComponentPlacement.UNRELATED)  
                                        .addComponent(btnIniciar, GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE)  
                                        .addPreferredGap(ComponentPlacement.RELATED)))  
                                .addGap(15))  
                            .addGroup(gl_contentPane.createSequentialGroup()  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                                    .addGroup(gl_contentPane.createSequentialGroup()  
                                        .addComponent(lblTotal, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)  
                                        .addGap(18)  
                                        .addComponent(totalTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                                        .addPreferredGap(ComponentPlacement.RELATED, 191, GroupLayout.PREFERRED_SIZE))  
                                    .addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()  
                                        .addGap(205)  
                                        .addGroup(gl_contentPane.createSequentialGroup()  
                                            .addComponent(lblTotal_1, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)  
                                            .addPreferredGap(ComponentPlacement.RELATED)  
                                            .addComponent(totalTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))  
                                .addContainerGap(262, Short.MAX_VALUE))))  
            );  
            gl_contentPane.setVerticalGroup(  
                gl_contentPane.createParallelGroup(Alignment.LEADING)  
                    .addGroup(gl_contentPane.createSequentialGroup()  
                        .addContainerGap()  
                        .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING, false)  
                            .addComponent(metaEmp, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                            .addComponent(lblMetaDaEmpresa, Alignment.LEADING))  
                        .addGap(18)  
                        .addComponent(progressBar, GroupLayout.PREFERRED_SIZE, 26, GroupLayout.PREFERRED_SIZE)  
                        .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)  
                            .addGroup(gl_contentPane.createSequentialGroup()  
                                .addGap(18)  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)  
                                    .addComponent(lblTotalDaEmpresa)  
                                    .addComponent(totalEmp, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                .addPreferredGap(ComponentPlacement.UNRELATED)  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)  
                                    .addComponent(lblTb_1, GroupLayout.PREFERRED_SIZE, 40, GroupLayout.PREFERRED_SIZE)  
                                    .addComponent(lblTb, GroupLayout.PREFERRED_SIZE, 40, GroupLayout.PREFERRED_SIZE))  
                                .addGap(18)  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)  
                                    .addComponent(lblQtde)  
                                    .addComponent(qtdeTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                                    .addComponent(label)  
                                    .addComponent(qtdeTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                .addPreferredGap(ComponentPlacement.UNRELATED)  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)  
                                    .addComponent(lblTempo)  
                                    .addComponent(tempTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                                    .addComponent(lblTempo_1)  
                                    .addComponent(tempTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                                .addPreferredGap(ComponentPlacement.UNRELATED)  
                                .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)  
                                    .addComponent(lblValor)  
                                    .addComponent(valorTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                                    .addComponent(lblValor_1)  
                                    .addComponent(valorTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))  
                            .addGroup(gl_contentPane.createSequentialGroup()  
                                .addGap(65)  
                                .addComponent(btnIniciar, GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)))  
                        .addGap(30)  
                        .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)  
                            .addComponent(lblTotal)  
                            .addComponent(totalTb_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                            .addComponent(lblTotal_1)  
                            .addComponent(totalTb_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))  
                        .addGap(23))  
            );  
            contentPane.setLayout(gl_contentPane);  
        }  
    }

2 Respostas

InicianteJavaHenriqu

Seria isto?

//evento ao abrir o JFrame
private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
        for (Byte cont = 0; cont < 102; cont++) {
            seuJProgress.setValue(cont);
            try {
                Thread.sleep(100); //tempo que a tela ficará em execução
                rePaint();
            } catch (InterruptedException ex) {
                Logger.getLogger(NomeDaSuaClasse.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        this.dispose();
       JFrameQueVcQuerAbra.setVisible(true);
    }                                    

    private void rePaint() {
        paintComponents(this.getGraphics());
    }

Se não for lamento por não ter ajudado (não entendir a dúvida direito)

ViniGodoy

Leia: http://download.oracle.com/javase/tutorial/uiswing/concurrency/

Criado 6 de maio de 2011
Ultima resposta 6 de mai. de 2011
Respostas 2
Participantes 3