oi gente, to tentando fazer um exercicio pra faculdade, o objetivo é usar programação multithread, ela ta funcionando de certa forma, pois consigo imprimir valores na tela com System.out.println() instanciando varios objetos e iniciando eles com ‘start’.
gostaria de simplesmente fazer com que as minhas imagens se locomovessem no JFrame
o problema é que eu quero mudar a variavel frame, usando as thread, porém não sei como posso ter acesso a essa variavel a parte da Classe Escrita1 ou Escrita2,
é falta de conhecimento mesmo, não sei como acessar a variavel frame(que é um objeto) através da classe Escrita.
Espero que eu tenha conseguido explicar direito, t+
ai esta o codigo
[code]import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Principal extends JFrame {
public static int i;
private static int numero;
public static void main(String[] args) {
Escrita1 e0 = new Escrita1();
Escrita1 e1 = new Escrita1();
Escrita1 e2 = new Escrita1();
Escrita2 e3 = new Escrita2();
e0.setName("MinhaThread1: ");
e1.setName("MinhaThread2: ");
e2.setName("MinhaThread3: ");
e3.setName("MinhaThread4: ");
e0.start();
e1.start();
e2.start();
e3.start();
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.setLocation(120, 75);
frame.setResizable(false);
frame.getContentPane().setBackground(new Color(255,255,255));
ImageIcon imagem_logo = new ImageIcon("C:/Documents and Settings/estinfo/Meus documentos/apache-tomcat-6.0.30_eclipse/webapps/ROOT/tomcat.gif");
JLabel lb_logo = new JLabel(imagem_logo);
imagem_logo = new ImageIcon("C:/Documents and Settings/estinfo/Meus documentos/apache-tomcat-6.0.30_eclipse/webapps/ROOT/tomcat.gif");
JLabel lb_logo1 = new JLabel(imagem_logo);
JLabel la_texto = new JLabel("texto simples");
frame.getContentPane().setLayout(null);
frame.getContentPane().add(lb_logo);
frame.getContentPane().add(lb_logo1);
frame.getContentPane().add(la_texto);
lb_logo.setBounds(0,0,200,100);
lb_logo1.setBounds(0,100,200,100);
la_texto.setBounds(0,180,200,100);
lb_logo1.setLocation(0, 200);
//lb_logo.setLocation(120, 175);
if(e0.isAlive() == true)
{
System.out.println("nao acabou");
}
else
System.exit(EXIT_ON_CLOSE);
}
}
class Escrita1 extends Thread {
//public static int i;
@Override
public void run() {
while(Principal.i<1000) {
System.out.println(super.getName()+Principal.i);
Principal.i = Principal.i + (int) ((Math.random() * 15)) ;
try {
Thread.sleep( 1000 ); // coloca a "thread" para "dormir" 1 segundo
} catch (InterruptedException e) {
e.printStackTrace( System.err );
}
}
}
}
class Escrita2 extends Thread {
@Override
public void run() {
while(Principal.i<1000) {
System.out.println(super.getName()+Principal.i);
Principal.i = Principal.i + (int) ((Math.random() * 15)) ;
try {
Thread.sleep( 1000 ); // coloca a "thread" para "dormir" 1 segundo
} catch (InterruptedException e) {
e.printStackTrace( System.err );
}
}
}
}
[/code]