Pessoal, sou novo em java, principalmente em interface gráfica. Tenho um trabalho que é implementar o “jantar dos filósofos”. Então, estou tentando fazer a GUI dele, pois em formato texto já está funcionando, porém, não estou conseguindo. O que estou fazendo errado. Segue o código resumido
Engenheiros.java
class Engenheiros extends Thread{
FabricaPanel panel = new FabricaPanel(5);
public void construir(){
try{
panel.cor = Color.GREEN;
panel.repaint();
}
}
}
FabricaPanel.java
public class FabricaPanel extends JPanel{
public Color cor;
public FabricaPanel(int total){
this.total = total;
}
public void paintComponent(Graphics g){
super.paintComponent(g);
this.setBackground(Color.WHITE);
g.setColor(this.cor);
for(int i = 0; i < total; i++){
double radianos = i * (2.0 * Math.PI / (double) this.total);
double x = Math.sin(radianos) * raio + centro;
double y = Math.cos(radianos) * raio + centro;
g.fillOval((int)x, (int)y, 20, 20);
}
}
}
O que eu preciso é, para cada thread Engenheiro que executar o método construir(), o círculo correspondente a ele deve mudar de cor. Alguém tem ideias?