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>
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.