Cambiar el color de una figura en java
Publicado por Narik Daniel (1 intervención) el 31/03/2019 23:31:27
Mi duda es la siguiente, y es que estoy haciendo el clásico semáforo. Pero esta vez con figuras como el circulo y no logro hacer que cambie de color. ¿Como le hago para que la figura del circulo cambie de color al presionar el boton de cambio?
El codigo es el siguiente:
El codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package semaforo;
import javax.swing.*;
import java.awt.*;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Formulario extends JFrame implements ActionListener{
//Creando el formulario
JPanel base = (JPanel) this.getContentPane();
// Creando botones
JButton btnunico = new JButton("Cambio");
JButton btn1 = new JButton("");
// Creando el constructor para darle caracteristicas al formulario
public Formulario() {
// Propiedades del formulario
base.setLayout(null);
setSize(500, 600);
setTitle("Semaforo de un solo boton");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
// Propiedades de los botones
btnunico.setBounds(300, 100, 100, 60);
btnunico.setFont(new Font("tahoma",Font.BOLD,15));
btnunico.setBackground(Color.GREEN);
btnunico.addActionListener(this);
add(btnunico);
}
boolean verde = false;
boolean rojo = false;
boolean amarillo = false;
public void paint(Graphics g){
super.paint (g);
Graphics2D circulo1 = (Graphics2D)g;
circulo1.setStroke(new BasicStroke (10.f));
circulo1.setPaint(Color.BLACK);
circulo1.fillOval(400, 400, 90, 90);
g.setColor(Color.BLACK);
g.fillRect(80, 80, 110, 330);
g.setColor(Color.BLACK);
g.fillRect(109, 410, 50, 80);
g.setColor(Color.BLACK);
g.fillRect(85, 490, 99, 30);
g.setColor (Color.DARK_GRAY);
g.fillOval(90, 100, 90, 90);
g.setColor (Color.DARK_GRAY);
g.fillOval(90, 200, 90, 90);
g.setColor(Color.DARK_GRAY);
g.fillOval(90, 300, 90, 90);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnunico) {
if(verde== false && amarillo == false && rojo == false) {
verde = true;
}
else if (verde == true && amarillo == false && rojo==false) {
amarillo = true;
}
else if(verde == true && amarillo == true && rojo == false) {
rojo = true;
}
else if (verde == true && amarillo == true && rojo == true) {
verde = false;
}
else if (verde == false && amarillo ==true && rojo == true) {
amarillo = false;
}
else if (verde == false && amarillo == false && rojo == true) {
rojo = false;
}
}
}
}
Valora esta pregunta
0