Escribir semáforos en java
El proceso completo es el siguiente:
Importar Java .
Importar evento Java . >Importar javax.swing.*;
Importar Java.awt.graphics;
La clase pública TrafficLight extiende JFrame{
JRadioButton jrbYellow, jrbGreen, jrbRed p>
int flag = 0;
jpNewPanel jpNewPanel
Public static void main(String[] args){
marco de semáforo = tráfico nuevo light();
frame.setSize(500, 200);
frame.setlocationrelativeto(null);
frame.setdefaultcloseoperation(JFrame.EXIT_ON_CLOSE);
frame . settitle(" semáforo ");
frame set visible(true);
}
Semáforo público(. ){
jpNewPanel = nuevo jpNewPanel();
add(jpNewPanel, BorderLayout.center);
JPanel jpRadioButtons = nuevo JPanel(); >
jpRadioButtons.setLayout(new GridLayout(1, 3));
jpradiobuttons . add(jrbYellow = new JRadioButton(" Amarillo ")); jrbGreen = nuevo JRadioButton(" Verde "));
jpradiobuttons add(jrbRed = nuevo JRadioButton(" Rojo "));
add(jpRadioButtons, BorderLayout.
Sur);
grupo de botones grupo = nuevo grupo de botones();
grupo add(jrbYellow);
grupo add(jrbGreen); p>
p>
group . add(Jr bred);
jrbYellow.addActionListener(new ActionListener(){
acción de anulación pública realizada (evento de acción e) {
bandera = 2;
jpnewpanel .repaint();
}
});
jrbGreen.addActionListener(new ActionListener(){
acción de anulación pública realizada (evento de acción e){
flag = 1;
jpnewpanel . repaint();
}
});
jrbRed.addActionListener(new ActionListener(){
acción de anulación pública realizada (evento de acción e) {
bandera = 3;
jpnewpanel .repaint();
}
});
}
La clase jpNewPanel extiende JPanel{
Componente de pintura en blanco protegido (gráfico g){
super componente de pintura (g);
g.drawRect(0, 0, 40, 100);
g.drawOval(10, 10, 20, 20);
g.drawOval(10, 40, 20); , 20) ;
g.drawOval(10,70,20,20);
if(flag==1){
g.setColor( color.verde );
g .Fieroval (10, 70, 20, 20
}
else if(flag==2){< / p>
g.setColor(color.amarillo);
g.Fieroval(10, 40, 20, 20);
}
else if(flag==3){
g.setColor(color. rojo);
g Firoval (10, 10, 20, 20);
}
}
}< /p. >
}