Convertendo código de APPLET para JFRAME

1 resposta
andredurao

olá… será quem alguem pode me dar umas dicas de como eu posso transfomar o codigo abaixo… de applet para Jframe???

ou melhor… se alguem puder me dar umas dicas de como utilizar um timer
em um Jframe… eu jah li o topico da sun e o exemplo do jProgressBar mas na hora de fzr o prog no NetBeans as coisas naum deram muito certo como eu esperava…

vlw@!

import java.applet.<em>;

import java.awt.</em>;

import java.util.<em>;

import java.text.</em>;

public class Clock1 extends Applet implements Runnable {

int width, height;

Thread t = null;

boolean threadSuspended;

int hours=0, minutes=0, seconds=0;

String timeString = “”;
//variavel de inicio da contagem dos segundos

int inicio=0;

//vetor de gravacao dos valores(dados) lidos

int[] gravacao = new int[120];
public void init() {

width = getSize().width;

height = getSize().height;

setBackground( Color.black );

}

public void start() {

if ( t == null ) {

t = new Thread( this );

t.setPriority( Thread.MIN_PRIORITY );

threadSuspended = false;

t.start();

}

else {

if ( threadSuspended ) {

threadSuspended = false;

synchronized( this ) {

notify();

}

}

}

}

public void stop() {

threadSuspended = true;

}

public void run() {

try {

while (true) {

// Here’s where the thread does some work

Calendar cal = Calendar.getInstance();

hours = cal.get( Calendar.HOUR_OF_DAY );

if ( hours > 12 ) hours -= 12;

minutes = cal.get( Calendar.MINUTE );

seconds = cal.get( Calendar.SECOND );

SimpleDateFormat formatter

= new SimpleDateFormat( hh:mm:ss, Locale.getDefault() );

Date date = cal.getTime();

timeString = formatter.format( date );

// Now the thread checks to see if it should suspend itself

if ( threadSuspended ) {

synchronized( this ) {

while ( threadSuspended ) {

wait();

}

}

}

repaint();

if (inicio<120){

inicio++;

gravacao[inicio] = seconds;

}
t.sleep( 1000 );  // interval given in milliseconds 
     } 
  } 
  catch (InterruptedException e) { }
}

void drawHand( double angle, int radius, Graphics g ) {

angle -= 0.5 * Math.PI;

int x = (int)( radius<em>Math.cos(angle) );

int y = (int)( radius</em>Math.sin(angle) );

g.drawLine( width/2, height/2, width/2 + x, height/2 + y );

}

void drawWedge( double angle, int radius, Graphics g ) {

angle -= 0.5 * Math.PI;

int x = (int)( radius<em>Math.cos(angle) );

int y = (int)( radius</em>Math.sin(angle) );

angle += 2<em>Math.PI/3;

int x2 = (int)( 5</em>Math.cos(angle) );

int y2 = (int)( 5<em>Math.sin(angle) );

angle += 2</em>Math.PI/3;

int x3 = (int)( 5<em>Math.cos(angle) );

int y3 = (int)( 5</em>Math.sin(angle) );

g.drawLine( width/2+x2, height/2+y2, width/2 + x, height/2 + y );

g.drawLine( width/2+x3, height/2+y3, width/2 + x, height/2 + y );

g.drawLine( width/2+x2, height/2+y2, width/2 + x3, height/2 + y3 );

}

public void paint( Graphics g ) {

g.setColor( Color.green );

/<em>drawWedge( 2</em>Math.PI * hours / 12, width/5, g );

drawWedge( 2<em>Math.PI * minutes / 60, width/3, g );

drawHand( 2</em>Math.PI * seconds / 60, width/2, g );*/
//Desenhando o vetor 
  for(int j=1;j< inicio;j++){ 
   g.drawLine( 50+j,100-gravacao[j-1],51+j,100-gravacao[j]); 
  } 
   
   
  g.setColor( Color.white ); 
  g.drawString( timeString, 10, height-10 );

}
}

1 Resposta

F
public static void main(String args[]){

JFrame frame=new JFrame();

Clock1 cloke=new Clock1();

frame.getContentPane().add(cloke);

cloke.init();

cloke.start();

frame.setSize(500,600);

frame.show();

}

basta adicionar esse metodo o valor no laço while threadSuspended esta incorreto pode nao fucionar adicione o sinal ! threadSuspended para que fucione;
Criado 4 de abril de 2006
Ultima resposta 5 de abr. de 2006
Respostas 1
Participantes 2