1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

pegar o valor de uma thread

Tenho essa thread dentro da classe modeloContar em um pacote(pacote modelo) e tenho essa outra classe ControleContador (pacote controlle). quero saber como faço para pegar o tempo exato de um contador que coloquei na thread. ps.: a thread tem mesmo que ficar no pacote modelo.

package visao;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;

public class TelaVisao extends JFrame {

    private JPanel contentPane;
    private JLabel lblNumeroContador;
    private JButton btnComear;

    public TelaVisao() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        lblNumeroContador = new JLabel("");
        lblNumeroContador.setBounds(248, 81, 106, 36);
        contentPane.add(lblNumeroContador);

        btnComear = new JButton("Come\u00E7ar");
        btnComear.setBounds(84, 26, 89, 23);
        contentPane.add(btnComear);
    }

    public JLabel getLblNumeroContador() {
        return lblNumeroContador;
    }
    public JButton getBtnComear() {
        return btnComear;
    }
}

package modelo;

public class modeloTelaVisao {

    private static volatile boolean fim = false;
    private static int segundos = 0;

    public static class Tempo extends Thread {
        public void run() {
            while (!fim) {
                try {
                    Thread.sleep(1000);
                } catch (Exception e) {
                }
                segundos++;
                System.out.println("contagem"+segundos);
            }
        }
    }

    public static int getSegundos() {
        return segundos;
    }
}

package controle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import modelo.modeloTelaVisao;
import modelo.modeloTelaVisao.Tempo;
import visao.TelaVisao;

public class controleTelaVisao implements ActionListener{

    private TelaVisao tv;
    private Tempo tempo;

    public controleTelaVisao(TelaVisao tv) {
        this.tv = tv;
        this.tv.getBtnComear().addActionListener(this);

        tempo = new Tempo();
        tv.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == tv.getBtnComear()){

            tv.getLblNumeroContador().setText(modeloTelaVisao.getSegundos() + "");
            System.out.println("contagem2"+ modeloTelaVisao.getSegundos());
            tempo.start();
        }

    }

    public static void main(String[] args) {
        new controleTelaVisao(new TelaVisao());
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.