La Red de Conocimientos Pedagógicos - Currículum vitae - Consejos de programación multiproceso JAVA

Consejos de programación multiproceso JAVA

paquete com;

importar java.awt.Color;

importar java.awt.event.ActionEvent;

importar java. awt.event.ActionListener;

importar java.util.Random;

importar javax.swing.JButton;

importar javax.swing.JFrame;

p>

importar javax.swing.JPanel;

clase pública ColorThread

{

pública estática vacía principal (String[] args)

{

Myframe mf =new Myframe();//Crear una instancia del objeto

Thread t=new Thread(mf);//Únase al hilo

t.start();//Iniciar hilo

}

}

clase Myframe extiende JFrame implementa Runnable,ActionListener

{

private static final long serialVersionUID = 1L;

Random rand = new Random(System.currentTimeMillis());//Usa el número aleatorio. hora del sistema como base

JPanel panel = new JPanel();//Panel de color

final JButton button = new JButton("Haga clic para detener o iniciar");//Botón

int action=0;// Decoloración o detener la marca de juicio de cambio de color

public Myframe()

{

super(" Cambia de color una vez cada 10 segundos") ;

button.setBounds(10, 10, 200, 30); //Establece las coordenadas del botón

button.addActionListener(this); // Establecer botón de escucha

panel.setBounds(10, 50, 100, 100); //Coordenadas del panel

panel.setBackground(Color.BLUE); //Color inicial del panel

p>

this.setBounds (100, 100, 300, 300); //Coordenadas del tamaño inicial del marco

this.add(panel); //Agregar panel al marco

> this.setLayout(null); //Establece el diseño del marco en nulo

this.add(button); //Agrega el botón al marco

this.setDefaultCloseOperation(3). ); //Configurar para cerrar el marco y salir del programa

this.setVisible(true //Configurar el marco para que sea visible

}

/**

* Implementar la interfaz de subproceso Runnable

*/

public void run()

{

mientras (tr

ue)//Establecer un bucle infinito

{

try

{

if(action==0)//Juzgar el operación como Cambiar el color de fondo del panel en 0

{

panel.setBackground(getcolor()); //Cambiar color

}

Thread. sleep(100); //10 segundos de sueño

}

catch (InterruptedException e)

{

e. printStackTrace();

}

}

}

color privado getcolor() //Obtener el color

{

return nuevo Color(getNum(), getNum(), getNum());

}

private int getNum() / /Obtener menos de un número aleatorio de 255

{

return rand.nextInt(255);

}

public void actionPerformed( ActionEvent e)/ /Escuchar eventos

{

if(action==0) //Juzgar después de hacer clic.

{

acción =1;

}else

{

acción =0;

}

}

}

//Hay comentarios.