Eis minha implementação inicial:
Classe principal (Jantar)
import java.awt.BorderLayout; import java.awt.GridLayout; import java.util.concurrent.Semaphore; import javax.swing.*; public class Jantar { public static int maxComendo, comendo; public static JLabel lblMaxn; public static int nFil; public static Semaphore mutex; public static Filosofo[] filosofos; public static void main(String[] args) { maxComendo = comendo = 0; nFil = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantos filósofos vão jantar?", "Quantidade de filósofos", JOptionPane.QUESTION_MESSAGE)); System.out.println("Quantidade de filósofos: " + nFil); JFrame mesa = new JFrame("Mesa de jantar"); mutex = new Semaphore(1); filosofos = new Filosofo[nFil]; JPanel info = new JPanel(); info.add(new JLabel("Filósofos: " + nFil + " ")); JLabel lblMaxtxt = new JLabel("Máximo Comendo: "); lblMaxn = new JLabel("0"); info.add(lblMaxtxt); info.add(lblMaxn); mesa.add(info, BorderLayout.NORTH); popularMesa(mesa,filosofos); mesa.setVisible(true); for (int i = 0; i < filosofos.length; i++) { filosofos[i].start(); } } private static void popularMesa(JFrame mesa, Filosofo[] filosofos) { JPanel painel = new JPanel(); painel.setLayout( new GridLayout( (int)Math.ceil(Math.sqrt(nFil)), (int)Math.ceil(Math.sqrt(nFil)))); for (int i = 0; i < nFil; i++) { System.out.println("Adicionando filósofo " + (i+1) + " à mesa."); filosofos[i] = new Filosofo(); filosofos[i].setNumero(i); painel.add(filosofos[i].label); } mesa.add(painel); mesa.pack(); mesa.setLocationRelativeTo(null); mesa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }Classe Filósofo
import java.awt.BorderLayout; import java.awt.GridLayout; import java.util.concurrent.Semaphore; import javax.swing.*; public class Jantar { public static int maxComendo, comendo; public static JLabel lblMaxn; public static int nFil; public static Semaphore mutex; public static Filosofo[] filosofos; public static void main(String[] args) { maxComendo = comendo = 0; nFil = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantos filósofos vão jantar?", "Quantidade de filósofos", JOptionPane.QUESTION_MESSAGE)); System.out.println("Quantidade de filósofos: " + nFil); JFrame mesa = new JFrame("Mesa de jantar"); mutex = new Semaphore(1); filosofos = new Filosofo[nFil]; JPanel info = new JPanel(); info.add(new JLabel("Filósofos: " + nFil + " ")); JLabel lblMaxtxt = new JLabel("Máximo Comendo: "); lblMaxn = new JLabel("0"); info.add(lblMaxtxt); info.add(lblMaxn); mesa.add(info, BorderLayout.NORTH); popularMesa(mesa,filosofos); mesa.setVisible(true); for (int i = 0; i < filosofos.length; i++) { filosofos[i].start(); } } private static void popularMesa(JFrame mesa, Filosofo[] filosofos) { JPanel painel = new JPanel(); painel.setLayout( new GridLayout( (int)Math.ceil(Math.sqrt(nFil)), (int)Math.ceil(Math.sqrt(nFil)))); for (int i = 0; i < nFil; i++) { System.out.println("Adicionando filósofo " + (i+1) + " à mesa."); filosofos[i] = new Filosofo(); filosofos[i].setNumero(i); painel.add(filosofos[i].label); } mesa.add(painel); mesa.pack(); mesa.setLocationRelativeTo(null); mesa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }Quer o programa pronto ou o código fonte?
ser possível sim e completo
ResponderExcluirDaniel, Boa noite!
ResponderExcluirTeria como passar o programa e o codigo pronto!
Estou com esse tema na faculdade!
Bet@
oi tem como me passar tbm to com problemas com meu codigo.
ResponderExcluirBom Dia
ResponderExcluirTeria como passar o programa e o codigo pronto!
Estou com esse tema na faculdade!
Meu e-mail é clair.luis@gmail.com
Obrigado
envia pra mim por favor. obrigado
ResponderExcluirandrenet64@outlook.com