Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problemas y dudas Thread e,interfaces

Primero que nada buenos dias,este es mi problema, tengo que hacer un cronometro usando obligatoriamente estas clases:
clase entidad= aqui se guardan las variables horas, minutos ,segundos junto con sus getters and setter.
clase vista = donde se crea la interfaz grafica del cronometro y aqui se implementa la interface
interface interfaz, con este se debe conectar la vista con la clase logica
clase logica = aqui se realizaran los calculos delcronometro y aqui se implementara runnable y la interface
Bien , se supone que en la vista se llamaran a los metodos de logica para usar los threads en logica y y asi calcule cada segundo que pase, pero para imprimirlos en lainterfaz debo mandarselo por medio de la interface a laclase entidad y que la vista los muestre en la interfaz grafica, pero esto mandando un objeto de entidad mediante la interface, sin embargo no se como hacer eso , no tengo ni la menor idea de como hacer de como mandar un objeto entidad a traves de la interface y que me lo muestre en interfaz grafica, ademas de que los threads no me estan funcionando tampoco, en fin.. gracias por su atencion.

Y aqui esta mi codigo:

package threads;

public class Main {

public static void main(String[] args) {

Vista croni=new Vista();
}

}

package threads;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Vista extends JFrame implements Interfaz {

Logica logica = new Logica();
Entidad entidad = new Entidad();
JLabel tiempo;
JButton iniciar;
JButton detener;
JButton reanudar;
JButton reiniciar;

public Vista()
{
setTitle("Super Cronometro");
setSize( 400, 150 );
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setVisible(true);

tiempo = new JLabel( "00:00:00" );
tiempo.setFont( new Font( Font.SANS_SERIF, Font.BOLD,55));
tiempo.setHorizontalAlignment( JLabel.CENTER );
tiempo.setForeground( Color.BLACK );

add( tiempo, BorderLayout.NORTH);

final JButton iniciar = new JButton( "Iniciar" );
iniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
iniciar.setEnabled(false);
logica.iniciarCronometro();
}
});

JButton detener = new JButton( "Detener" );
detener.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
iniciar.setEnabled(true);
logica.detenerCronometro();
}
});

JButton reanudar = new JButton( "Reanudar" );
reanudar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){

}
});
JButton reiniciar = new JButton( "Reiniciar" );
reiniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){

}
});

JPanel panelBoton = new JPanel();
panelBoton.setLayout(new GridLayout(1,4,4,4));
panelBoton.add(iniciar);
panelBoton.add(detener);
panelBoton.add(reanudar);
panelBoton.add(reiniciar);
add(panelBoton, BorderLayout.CENTER);
}

public void segundero(Entidad logica) {

tiempo.setText(entidad.getHoras() +":"+
entidad.getMinutos() +":"+entidad.getSegundos());
}
}

package threads;

public interface Interfaz {

public void segundero(Entidad logica);

}


package threads;

public class Entidad {

private String segundos="00";
private String minutos="00";
private String horas="00";

public String getSegundos()
{
return segundos;
}

public void setSegundos(String segundos)
{
this.segundos = segundos;
}

public String getMinutos()
{
return minutos;
}

public void setMinutos(String minutos)
{
this.minutos=minutos;
}

public String getHoras()
{
return horas;
}

public void setHoras(String horas)
{
this.horas = horas;
}
}


package threads;

public class Logica implements Runnable,Interfaz{

boolean cronometroActivo;
Thread hilo;
int horas=0;
int min = 0;
int seg = 0;
String hora;
String minutos;
String segundos;

public void segundero(Entidad entidad) {

}

public void run() {


try
{

while(cronometroActivo)
{
System.out.println("a");
Thread.sleep(60000);
seg++;

if(seg == 60)
{
seg = 0;
min ++;

if(min == 60)
{
min=0;
horas++;
}
}

if(horas<10)
{
hora = "0"+ Integer.toString(horas);
}
else
{
hora = Integer.toString(horas);
}

if(min<10)
{
minutos = "0"+ Integer.toString(min);
}
else
{
segundos = Integer.toString(seg);
}
System.out.println(hora+":"+minutos+":"+segundos);

}

}catch(Exception e){
System.out.println(hora+":"+minutos+":"+segundos);
}
}

public void iniciarCronometro(){
cronometroActivo = true;
hilo = new Thread(new Logica());
//System.out.println("a");
hilo.start();
}

public void detenerCronometro()
{
cronometroActivo = false;
hora="0";
minutos="0";
segundos="0";
}

public void reiniciarCronometro()
{
hora="0";
minutos="0";
segundos="0";
cronometroActivo=true;
hilo = new Thread(this);
hilo.start();
}

public void pausarCronometro(){
cronometroActivo = false;
hilo = new Thread(this);
hilo.start();
}


}

septiembre 9, 2014 | Registered Commentererased