Oi pessoal,
Finalmente meu trab. saiu mas ficaram alguns furos que ainda não consigo resolver sozinha…
Os três botões que representam cada uma das empresas hipotéticas do pgm, qdo clicados é para somente receber uma borda colorida que corresponde a uma dada reta do triangulo equilátero do problema, querendo dizer que aquela reta representa aquela jogador.
Tudo bem que isso tá acontecendo, mas tb a dimensão dos botões estão diminuindo, talvez seja pelo tipo de gerenciador de layout que decidi usar.
Alguém me ajuda, tem algum comando para que os JButtons não percam a dimensão original qdo clicados!!!
obrigada!
Segue o codigo:
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.Border;
import java.beans.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.Serializable;
public class Jce extends JApplet implements ActionListener,
WindowListener, Serializable {
PainelTriangulo painelTriangulo = new PainelTriangulo();
private static final long serialVersionUID = 1L;
private JMenuBar barraMenu;
private JMenu menuJogo;
private JMenuItem itSobre;
private JMenuItem itConfigs;
private String sdescrConfig = "";
private JTextArea tdescrConfig;
String sdescr = "";
private JTextArea tdescr;
private JLabel lclickjog;
private JButton bjogador1, bjogador2, bjogador3;
private JLabel lformacord;
private JLabel ljog12;
private JLabel lcoord_12;
// Campo default não-editável
private JTextField tpos12_X;
// Combobox para jogador 1
private JComboBox listaA;
private String opcoes12_Y[] = { " 0 ", " 1 ", " 2 ", " 3 ",
" 4 ", " 5 ", " 6 " };
// Campo para o valor calculado
private JTextField tpos12_Z;
private JLabel lcoord_21;
// Combobox para jogador 2
private JComboBox listaB;
private String opcoes21_X[] = { " 1 ", " 2 ", " 3 ", " 4 ",
" 5 ", " 6 ", " 7 " };
// Campo default não-editável
private JTextField tpos21_Y;
// Campo para o valor calculado
private JTextField tpos21_Z;
private JLabel ljog13;
private JLabel lcoord_13;
// Campo default não-editável
private JTextField tpos13_X;
// Combobox para jogador 1 de novo
private JComboBox listaC;
private String opcoes13_Y[] = { " 0 ", " 1 ", " 2 ", " 3 ",
" 4 ", " 5 ", " 6 " };
// Campo para o valor calculado
private JTextField tpos13_Z;
private JLabel lcoord_31;
// Combobox para jogador 3 de novo
private JComboBox listaD;
private String opcoes13_X[] = { " 1 ", " 2 ", " 3 ", " 4 ",
" 5 ", " 6 ", " 7 " };
// Campo para o valor calculado
private JTextField tpos31_Y;
// Campo default não-editável
private JTextField tpos31_Z;
private JLabel ljog23;
private JLabel lcoord_23;
// Combobox para jogador 2 de novo
private JComboBox listaE;
private String opcoes23_X[] = { " 1 ", " 2 ", " 3 ", " 4 ",
" 5 ", " 6 ", " 7 " };
// Campo default não-editável
private JTextField tpos23_Y;
// Campo para o valor calculado
private JTextField tpos23_Z;
private JLabel lcoord_32;
// Campo para o valor calculado
private JTextField tpos32_X;
// Combobox para jogador 3 de novo
private JComboBox listaF;
private String opcoes32_Y[] = { " 0 ", " 1 ", " 2 ", " 3 ",
" 4 ", " 5 ", " 6 " };
// Campo default não-editável
private JTextField tpos32_Z;
private JLabel lhistorico;
private JLabel lvertice1, lvertice2, lvertice3;
String svertice1 = "(7, 0, 1)";
String svertice2 = "(1, 6, 1)";
String svertice3 = "(1, 0, 7)";
private JLabel ltriang_1, ltriang_2, ltriang_3;
String striang1 = ("1");
String striang2 = ("2");
String striang3 = ("3");
private Border borda, borda2;
private JButton bimput, brodajogo, breiniciar;
private PropertyChangeSupport changeSupport;
private int currentValue;
private int tentativa = 0;
Graphics g = null;
private int auxSomaA, auxSomaB = -1;
private int auxSomaC, auxSomaD = -1;
private int auxSomaE, auxSomaF = -1;
int t12Z, t21Z, t13Z, t31Y, t23Z, t32X = -1;
JPanel painel = new JPanel();
JPanel p1 = new JPanel(); // em uso
JPanel p2 = new JPanel(); // em uso
JPanel p3 = new JPanel(); // em uso
JPanel p4 = new JPanel();
JPanel p5 = new JPanel(); // em uso
JPanel p6 = new JPanel(); // em uso
JPanel p7 = new JPanel(); // em uso
JPanel p8 = new JPanel();
JPanel p9 = new JPanel();
JPanel p10 = new JPanel();
JPanel p11 = new JPanel(); // em uso
JPanel p12 = new JPanel(); // em uso
JPanel p13 = new JPanel(); // em uso
JPanel p15 = new JPanel(); // em uso
JPanel p17 = new JPanel(); // em uso
JPanel p18 = new JPanel();
JPanel p19 = new JPanel(); // em uso
JPanel p21 = new JPanel();
JPanel p22 = new JPanel();
JPanel p23 = new JPanel(); // em uso
JPanel p24 = new JPanel();
JPanel p25 = new JPanel();
JPanel p32 = new JPanel();
JPanel p33 = new JPanel(); // em uso
JPanel p34 = new JPanel(); // em uso
JPanel p35 = new JPanel(); // em uso
JPanel p36 = new JPanel();
JPanel p37 = new JPanel();
JPanel p38 = new JPanel();
JPanel p42 = new JPanel();// em uso
JPanel p43 = new JPanel();// em uso
JPanel p55 = new JPanel();
JPanel p56 = new JPanel();
public void init() {
changeSupport = new PropertyChangeSupport(this);
// Barra de Menu
barraMenu = new JMenuBar();
menuJogo = new JMenu("JOGO");
menuJogo.setMnemonic('J');
setJMenuBar(barraMenu);
itSobre = new JMenuItem("Sobre...");
itSobre.setMnemonic('S');
itSobre.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane
.showMessageDialog(
Jce.this,
"É um jogo baseado num triângulo equilátero levando-se em consideração"
+ "\nos critérios de conjunto vazio e superaditividade identificados no conceito"
+ "\nde solução Core.", "Sobre...",
JOptionPane.PLAIN_MESSAGE);
}
});
menuJogo.add(itSobre);
tdescrConfig = new JTextArea(7, 28);
itConfigs = new JMenuItem("Gerar Configurações Iniciais");
itConfigs.setMnemonic('G');
itConfigs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object e1 = e.getSource();
if (e1 == itConfigs) {
int tab_benef[][] = { { 1, 4, 3 }, { 4, 0, 5 }, { 3, 5, 1 } };
int tab, jog, aux1 = 0, aux2 = 0;
jog = tab_benef.length;
tab = tab_benef[0].length;
int x = 15; // linha
int y = 15; // coluna
int row = 30; // deslocar a linha
int col = 25; // deslocar a linha
painelTriangulo.setText(x, y, "Tabela de Benefícios: ($)");
sdescrConfig += " ";
for (int i = 0; i < tab; i++) {
sdescrConfig += "{" + (i + 1) + "} ";
}
painelTriangulo.setText(x, y + row, sdescrConfig);
row += 5;
for (int i = 0; i < jog; i++) {
row += 15;
painelTriangulo.setText(x, y + row, "v {" + (i + 1)
+ "} ");
col += 1;
for (int j = 0; j < tab; j++) {
sdescrConfig += tab_benef[i][j] + " ";
painelTriangulo.setText(x + col, y + row, " "
+ tab_benef[i][j]);
col += 20;
}
col = 25;
}
sdescrConfig.toUpperCase();
}
}
});
menuJogo.add(itConfigs);
barraMenu.add(menuJogo);
// ********* define uso dos gerenciadores de layout *********
painel.setBackground(Color.LIGHT_GRAY);
painel.setLayout(new BorderLayout());
Font negrito = new Font("SansSerif", Font.BOLD, 13);
sdescr += " Três empresas representadas pelos jogadores 1, 2 e 3 estão em negociação para juntas "
+ "\nimplementarem um projeto que trará benefícios comuns aos três participantes. Uma negociação"
+ "\nsem jogadores não gera ganho e que sozinhos eles não são capazes de implementar o projeto."
+ "\nA solução escolhida para o jogo possui as imputações estáveis e instáveis de cada coalizão.";
tdescr = new JTextArea(4, 20);
tdescr.setEditable(false);
tdescr.setBorder(BorderFactory.createLineBorder(Color.black, 2));
tdescr.setFont(negrito);
tdescr.setBackground(Color.white);
tdescr.setText(sdescr);
p1.setLayout(new BorderLayout());
// p1.add(tdescr, "North");
lformacord = new JLabel("OPÇÕES DE COALIZÃO");
lformacord.setFont(new Font("TimesRoman", Font.BOLD, 14));
lformacord.setAlignmentX(JComponent.CENTER_ALIGNMENT);
lformacord.setHorizontalTextPosition(SwingConstants.CENTER);
lformacord.setVerticalTextPosition(SwingConstants.TOP);
p17.setLayout(new FlowLayout(FlowLayout.CENTER));
p17.add("North", lformacord);
ljog12 = new JLabel("Jogadores {1 e 2}: ");
ljog12.setFont(negrito);
lcoord_12 = new JLabel("Enviar posição para o jogador 1");
lcoord_12.setForeground(Color.green);
lcoord_12.setFont(new Font("SansSerif", Font.BOLD, 13));
tpos12_X = new JTextField(" 1 ", 5);
tpos12_X.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos12_X.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos12_X.setBackground(Color.yellow);
tpos12_X.setFont(negrito);
tpos12_X.setEditable(false);
listaA = new JComboBox(opcoes12_Y);
listaA.setMaximumRowCount(7);
listaA.addActionListener(this);
listaA.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
listaA.getSelectedIndex();
}
});
tpos12_Z = new JTextField(5);
lcoord_21 = new JLabel("Enviar posição para o jogador 2");
lcoord_21.setForeground(Color.blue);
lcoord_21.setFont(new Font("SansSerif", Font.BOLD, 13));
listaB = new JComboBox(opcoes21_X);
listaB.setMaximumRowCount(7);
listaB.addActionListener(this);
listaB.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
listaB.getSelectedIndex();
}
});
tpos21_Y = new JTextField(" 0 ", 5);
tpos21_Y.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos21_Y.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos21_Y.setBackground(Color.yellow);
tpos21_Y.setFont(negrito);
tpos21_Y.setEditable(false);
tpos21_Z = new JTextField(5);
ljog13 = new JLabel("Jogadores {1 e 3}: ");
ljog13.setFont(negrito);
lcoord_13 = new JLabel("Enviar posição para o jogador 1");
lcoord_13.setForeground(Color.green);
lcoord_13.setFont(new Font("SansSerif", Font.BOLD, 13));
tpos13_X = new JTextField(" 1 ", 5);
tpos13_X.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos13_X.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos13_X.setBackground(Color.yellow);
tpos13_X.setFont(negrito);
tpos13_X.setEditable(false);
listaC = new JComboBox(opcoes13_Y);
listaC.setMaximumRowCount(7);
listaC.addActionListener(this);
listaC.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
listaC.getSelectedIndex();
}
});
tpos13_Z = new JTextField(5);
lcoord_31 = new JLabel("Enviar posição para o jogador 3");
lcoord_31.setForeground(Color.red);
lcoord_31.setFont(new Font("SansSerif", Font.BOLD, 13));
listaD = new JComboBox(opcoes13_X);
listaD.setMaximumRowCount(7);
listaD.addActionListener(this);
listaD.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
listaD.getSelectedIndex();
}
});
tpos31_Y = new JTextField(5);
tpos31_Z = new JTextField(" 1 ", 5);
tpos31_Z.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos31_Z.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos31_Z.setBackground(Color.yellow);
tpos31_Z.setFont(negrito);
tpos31_Z.setEditable(false);
ljog23 = new JLabel("Jogadores {2 e 3}: ");
ljog23.setFont(negrito);
lcoord_23 = new JLabel("Enviar posição para o jogador 2");
lcoord_23.setForeground(Color.blue);
lcoord_23.setFont(new Font("SansSerif", Font.BOLD, 13));
listaE = new JComboBox(opcoes23_X);
listaE.setMaximumRowCount(7);
listaE.addActionListener(this);
listaE.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
listaE.getSelectedIndex();
}
});
tpos23_Y = new JTextField(" 0 ", 5);
tpos23_Y.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos23_Y.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos23_Y.setBackground(Color.yellow);
tpos23_Y.setFont(negrito);
tpos23_Y.setEditable(false);
tpos23_Z = new JTextField(5);
lcoord_32 = new JLabel("Enviar posição para o jogador 3");
lcoord_32.setForeground(Color.red);
lcoord_32.setFont(new Font("SansSerif", Font.BOLD, 13));
tpos32_X = new JTextField(5);
listaF = new JComboBox(opcoes32_Y);
listaF.setMaximumRowCount(7);
listaF.addActionListener(this);
listaF.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
listaF.getSelectedIndex();
}
});
tpos32_Z = new JTextField(" 1 ", 5);
tpos32_Z.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos32_Z.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos32_Z.setBackground(Color.yellow);
tpos32_Z.setFont(negrito);
tpos32_Z.setEditable(false);
p12.setLayout(new GridLayout(17, 1));
p12.add(p17);
p12.add(ljog12);
p12.add(lcoord_12);
p13.setLayout(new FlowLayout(FlowLayout.LEFT));
p13.add(tpos12_X);
p13.add(listaA);
p13.add(tpos12_Z);
p12.add(p13);
p12.add(lcoord_21);
p19.setLayout(new FlowLayout(FlowLayout.LEFT));
p19.add(listaB);
p19.add(tpos21_Y);
p19.add(tpos21_Z);
p12.add(p19);
p12.add(ljog13);
p12.add(lcoord_13);
p33.setLayout(new FlowLayout(FlowLayout.LEFT));
p33.add(tpos13_X);
p33.add(listaC);
p33.add(tpos13_Z);
p12.add(p33);
p12.add(lcoord_31);
p34.setLayout(new FlowLayout(FlowLayout.LEFT));
p34.add(listaD);
p34.add(tpos31_Y);
p34.add(tpos31_Z);
p12.add(p34);
p12.add(ljog23);
p12.add(lcoord_23);
p42.setLayout(new FlowLayout(FlowLayout.LEFT));
p42.add(tpos23_Z);
p42.add(tpos23_Y);
p42.add(listaE);
p12.add(p42);
p12.add(lcoord_32);
p35.setLayout(new FlowLayout(FlowLayout.LEFT));
p35.add(tpos32_X);
p35.add(listaF);
p35.add(tpos32_Z);
p12.add(p35);
p15.setLayout(new FlowLayout(FlowLayout.LEFT));
bimput = new JButton("Registrar Imputações");
bimput.setMnemonic('I');
bimput.setToolTipText("Registrar Imputação");
bimput.setAlignmentX(JComponent.CENTER_ALIGNMENT);
bimput.addActionListener(this);
breiniciar = new JButton("Reiniciar");
breiniciar.setMnemonic('R');
breiniciar.setToolTipText("Reiniciar");
breiniciar.setAlignmentX(JComponent.CENTER_ALIGNMENT);
breiniciar.addActionListener(this);
p15.add(bimput);
p15.add(breiniciar);
p12.add(p15);
p2.setLayout(new BorderLayout());
p2.add(p12, "West");
p3.setLayout(new BorderLayout());
p3.add(p2, "North");
lclickjog = new JLabel(
" CLICK NOS BOTÕES PARA DEFINIR A ÁREA DE ATUAÇÃO NO JOGO ");
lclickjog.setFont(new Font("TimesRoman", Font.PLAIN, 16));
lclickjog.setFont(negrito);
lclickjog.setAlignmentX(JComponent.CENTER_ALIGNMENT);
lclickjog.setHorizontalTextPosition(SwingConstants.CENTER);
lclickjog.setVerticalTextPosition(SwingConstants.TOP);
Icon bugA = null;
Icon bugB = null;
Icon bugC = null;
try {
BufferedImage imagemA = ImageIO.read(Jce.class
.getClassLoader().getResource("ubuntu_sp_reduz.GIF"));
BufferedImage imagemB = ImageIO.read(Jce.class
.getClassLoader().getResource("xubuntu_reduz.GIF"));
BufferedImage imagemC = ImageIO.read(Jce.class
.getClassLoader().getResource("logo_edu.GIF"));
bugA = new ImageIcon(imagemA);
bugB = new ImageIcon(imagemB);
bugC = new ImageIcon(imagemC);
} catch (Exception e) {
e.printStackTrace();
}
bjogador1 = new JButton("<<< Jogador 1 >>>", bugA);
bjogador1.setHorizontalTextPosition(SwingConstants.CENTER);
bjogador1.setVerticalTextPosition(SwingConstants.BOTTOM);
bjogador1.setRolloverIcon(bugA);
bjogador1.addActionListener(this);
bjogador2 = new JButton("<<< Jogador 2 >>>", bugB);
bjogador2.setHorizontalTextPosition(SwingConstants.CENTER);
bjogador2.setVerticalTextPosition(SwingConstants.BOTTOM);
bjogador2.setRolloverIcon(bugB);
bjogador2.addActionListener(this);
bjogador3 = new JButton("<<< Jogador 3 >>>", bugC);
bjogador3.setHorizontalTextPosition(SwingConstants.CENTER);
bjogador3.setVerticalTextPosition(SwingConstants.BOTTOM);
bjogador3.setRolloverIcon(bugC);
bjogador3.addActionListener(this);
p6.setLayout(new BoxLayout(p6, BoxLayout.Y_AXIS));
p7.setLayout(new FlowLayout(FlowLayout.LEFT));
p7.add(lclickjog);
p11.setLayout(new FlowLayout(FlowLayout.RIGHT));
p11.add(bjogador1);
p11.add(bjogador2);
p11.add(bjogador3);
p6.add(p7);
p6.add(p11);
p43.setLayout(new FlowLayout(FlowLayout.CENTER));
p43.add(p6);
p1.add(p43, "Center");
lhistorico = new JLabel("HISTÓRICO DE JOGADAS");
lhistorico.setFont(new Font("TimesRoman", Font.BOLD, 14));
lhistorico.setFont(negrito);
lhistorico.setAlignmentX(JComponent.CENTER_ALIGNMENT);
lhistorico.setHorizontalTextPosition(SwingConstants.RIGHT);
lhistorico.setVerticalTextPosition(SwingConstants.TOP);
brodajogo = new JButton("Jogar");
brodajogo.setMnemonic('J');
brodajogo.setToolTipText("Jogar");
brodajogo.setAlignmentX(JComponent.CENTER_ALIGNMENT);
brodajogo.addActionListener(this);
p23.setLayout(new FlowLayout(FlowLayout.CENTER));
p23.add(bimput);// aqui
p23.add(breiniciar);
p23.add(brodajogo);
p5.setLayout(new BoxLayout(p5, BoxLayout.Y_AXIS));
p5.add(lhistorico);
p5.add(painelTriangulo);
p2.add(p5, "East");
p3.setLayout(new BorderLayout());
p3.add(p2);
// define os gerenciadores de layout de cada panel
painel.add(p1, "North");
painel.add(p3, "Center");
painel.add(p23, "South");
setContentPane(painel);
setVisible(true);
setSize(800, 900);// larg e alt
tpos12_X.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setCurrentValue(Integer.parseInt(tpos12_X.getText()));
}
});
} // fim public CoalApple3
public void addPropertyChangeListener(PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
}
public void setCurrentValue(int current) {
int oldValue = currentValue;
currentValue = current;
tpos12_X.setText(String.valueOf(currentValue));
changeSupport.firePropertyChange("currentValue", new Integer(oldValue),
new Integer(currentValue));
}
public class Triangulo {
public void paintMe(Graphics g, boolean simulacao) {
// Metade horizontal e metade vertical
int meioHor = 195;
int meioVer = 105;
// Desenha o triangulo na parte inferior da janela do Panel
g.setColor(Color.red); // lado esquerdo
g.drawLine(meioHor, meioVer, 30, 341 - 30);
g.setColor(Color.black);
g.drawString(svertice1, 170, 92);
g.drawString(striang1, 180, 323);
g.setColor(Color.green);
g.drawLine(30, 341 - 30, 390 - 30, 341 - 30);// base do triangulo
g.setColor(Color.black);
g.drawString(svertice2, 12, 323);
g.drawString(striang2, 300, 223);
g.setColor(Color.blue); // lado direito
g.drawLine(meioHor, meioVer, 390 - 30, 341 - 30);
g.setColor(Color.black);
g.drawString(svertice3, 350, 323);
g.drawString(striang3, 90, 223);
if (simulacao) {
g.drawLine(220, 340, 310, 160); // corta verde - azul
this.gotoSleep(1000);
g.drawLine(50, 235, 340, 235); // corta vermelho - azul
this.gotoSleep(1000);
g.drawLine(30, 210, 100, 340); // corta vermelho - verde
}
}
private void gotoSleep(long value) {
try {
Thread.sleep(value);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class PainelTriangulo extends JPanel {
private Triangulo triangulo;
private boolean simulacao = false;
public PainelTriangulo() {
triangulo = new Triangulo();
super.setPreferredSize(new Dimension(400, 100));
super.setBorder(BorderFactory.createLineBorder(Color.black, 2));
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.WHITE);
g.fillRect(0, 0, super.getWidth(), super.getHeight());
g.setColor(Color.BLACK);
Graphics2D g2 = (Graphics2D)g;
Stroke bs = g2.getStroke();
g2.setStroke(new BasicStroke(5.0f));
g2.draw(new RoundRectangle2D.Double(0, 0,getWidth()-1, getHeight()-1,10,10));
g2.setStroke(bs);
triangulo.paintMe(g, simulacao);
}
public void executarSimulacao(boolean simulacao) {
this.simulacao = simulacao;
//super.setBorder(BorderFactory.createLineBorder(Color.black, 2));
this.paintComponent(super.getGraphics());
}
public void setText(int x, int y, String text) {
super.getGraphics().drawString(text, x, y);
}
public Triangulo getTriangulo() {
return triangulo;
}
}
public void actionPerformed(ActionEvent ev) {
Object src = ev.getSource();
final int TOTCOAL1 = 1, TOTCOAL2 = 0, TOTCOAL3 = 1;
final int TOTCOALIZAO = 8;
final int TOT12 = 4, TOT13 = 3, TOT23 = 5;
String output = "";
if (src == bjogador1)
bjogador1.setBorder(BorderFactory.createLineBorder(Color.green, 3));
if (src == bjogador2)
bjogador2.setBorder(BorderFactory.createLineBorder(Color.blue, 3));
if (src == bjogador3)
bjogador3.setBorder(BorderFactory.createLineBorder(Color.red, 3));
if (src == bimput) {
painelTriangulo.executarSimulacao(true);
int somaA = -1;
int opa = -1;
String sla = "";
int difA = -1;
String txt12Z = "";
// primeiro valor constante
opa = listaA.getSelectedIndex();
somaA = opa + TOTCOAL1;
auxSomaA = somaA;
sla = String.valueOf(opa);
difA = TOTCOALIZAO - somaA;
txt12Z = String.valueOf(difA);
tpos12_Z.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos12_Z.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos12_Z.setEditable(false);
tpos12_Z.setText(txt12Z);
t12Z = Integer.parseInt(txt12Z);
// //////////////////////////////////////////////////
int somaB = -1;
int opb = -1;
String slb = "";
int difB = -1;
String txt21Z = "";
opb = listaB.getSelectedIndex() + 1;
slb = String.valueOf(opb);
somaB = opb + TOTCOAL2;
auxSomaB = somaB;
difB = TOTCOALIZAO - somaB;
// segundo valor constante
txt21Z = String.valueOf(difB);
tpos21_Z.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos21_Z.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos21_Z.setEditable(false);
tpos21_Z.setText(txt21Z);
t21Z = Integer.parseInt(txt21Z);
// ////////////////////////////////////////////////////
int somaC = -1;
int opc = -1;
String slc = "";
int difC = -1;
String txt13X = "";
// primeiro valor constante
opc = listaC.getSelectedIndex();
slc = String.valueOf(opc);
somaC = opc + TOTCOAL3;
auxSomaC = somaC;
difC = TOTCOALIZAO - somaC;
txt13X = String.valueOf(difC);
tpos13_Z.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos13_Z.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos13_Z.setEditable(false);
tpos13_Z.setText(txt13X);
t13Z = Integer.parseInt(txt13X);
// /////////////////////////////////////////////////
int somaD = -1;
int opd = -1;
String sld = "";
int difD = -1;
String txt31Y = "";
opd = listaD.getSelectedIndex() + 1;
sld = String.valueOf(opd);
somaD = opd + TOTCOAL3;
auxSomaD = somaD;
difD = TOTCOALIZAO - somaD;
txt31Y = String.valueOf(difD);
// terceiro valor constante
tpos31_Y.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos31_Y.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos31_Y.setEditable(false);
tpos31_Y.setText(txt31Y);
t31Y = Integer.parseInt(txt31Y);
// ////////////////////////////////////////////////////
int somaE = -1;
int ope = -1;
String sle = "";
int difE = -1;
String txt23X = "";
ope = listaE.getSelectedIndex() + 1;
sle = String.valueOf(ope);
somaE = ope + TOTCOAL2;
auxSomaE = somaE;
difE = TOTCOALIZAO - somaE;
txt23X = String.valueOf(difE);
// segundo valor constante
tpos23_Z.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos23_Z.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos23_Z.setEditable(false);
tpos23_Z.setText(txt23X);
t23Z = Integer.parseInt(txt23X);
// ////////////////////////////////////////////////////
int somaF = -1;
int opf = -1;
String slf = "";
int difF = -1;
String txt32Y = "";
opf = listaF.getSelectedIndex();
slf = String.valueOf(opf);
somaF = opf + TOTCOAL3;
auxSomaF = somaF;
difF = TOTCOALIZAO - somaF;
txt32Y = String.valueOf(difF);
// terceiro valor constante
tpos32_X.setHorizontalAlignment((int) JComponent.CENTER_ALIGNMENT);
tpos32_X.setAlignmentX(JComponent.CENTER_ALIGNMENT);
tpos32_X.setEditable(false);
tpos32_X.setText(txt32Y);
t32X = Integer.parseInt(txt32Y);
return;
}
if (src == brodajogo) {
Font negrito = new Font("SansSerif", Font.BOLD, 14);
JTextArea outputArea = new JTextArea(4, 15);
JScrollPane scroller = new JScrollPane(outputArea);
String output3 = "";
if (((auxSomaA >= TOT12) && (auxSomaB >= TOT12))) {
output3 = "Imputação Estável para a Coalizão {1,2} e valor de SomaA = " + auxSomaA + " SomaB = "
+ auxSomaB + " e TOT12: " + TOT12 + "\t e T12Z: "+ t12Z + "\t e T21Z: "+ t21Z;
} else {
output3 = "Imputação Instável para a Coalizão {1,2} e valor de SomaA = " + auxSomaA + " SomaB = "
+ auxSomaB + " e TOT12: " + TOT12 + "\t e T12Z: "+ t12Z + "\t e T21Z: "+ t21Z;
}
if (((auxSomaC >= TOT13) && (auxSomaD >= TOT13))) {
output3 += "\nImputação Estável para a Coalizão {1,3} e valor de SomaC = " + auxSomaC
+ " SomaD = " + auxSomaD + " e TOT13: " + TOT13 + "\t e T13Z: "+ t13Z + "\t e T31Y: "+ t31Y;
} else {
output3 += "\nImputação Instável para a Coalizão {1,3} e valor de SomaC = " + auxSomaC
+ " SomaD = " + auxSomaD + " e TOT13: " + TOT13 + "\t e T13Z: "+ t13Z + "\t e T31Y: "+ t31Y;
}
if (((auxSomaE >= TOT23) && (auxSomaF >= TOT23))) {
output3 += "\nImputação Estável para a Coalizão {2,3} e valor de SomaE = " + auxSomaE
+ " SomaF = " + auxSomaF + " e TOT23: " + TOT23 + "\t e T23Z: "+ t23Z + "\t e T32X: "+ t32X;
} else {
output3 += "\nImputação Instável para a Coalizão {2,3} e valor de SomaE = " + auxSomaE
+ " SomaF = " + auxSomaF + " e TOT23: " + TOT23 + "\t e T23Z: "+ t23Z + "\t e T32X: "+ t32X;
}
outputArea.setFont(negrito);
outputArea.setText(output3);
JOptionPane.showMessageDialog(null, outputArea,
"Resultados do Jogo", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (src == breiniciar) {
painelTriangulo.executarSimulacao(false);
listaA.setSelectedItem(opcoes12_Y[0]);
tpos12_Z.setText(null);
listaB.setSelectedItem(opcoes21_X[0]);
tpos21_Z.setText(null);
listaC.setSelectedItem(opcoes13_Y[0]);
tpos13_Z.setText(null);
listaD.setSelectedItem(opcoes13_X[0]);
tpos31_Y.setText(null);
listaE.setSelectedItem(opcoes23_X[0]);
tpos23_Z.setText(null);
listaF.setSelectedItem(opcoes32_Y[0]);
tpos32_X.setText(null);
Font negrito = new Font("SansSerif", Font.BOLD, 14);
JTextArea outputArea = new JTextArea(5, 20);
JScrollPane scroller = new JScrollPane(outputArea);
String output3 = "";
tentativa++;
if (tentativa == 3) {
output3 += "\tMoral do Jogo"
+ "\nO jogo intencionou mostrar a aplicação da teoria dos jogos "
+ "\ncooperativos, especificamente, o conceito de solução Core.";
outputArea.setFont(negrito);
outputArea.setText(output3);
JOptionPane.showMessageDialog(null, outputArea,
"Explicação do Jogo", JOptionPane.INFORMATION_MESSAGE);
bimput.setVisible(false);
breiniciar.setVisible(false);
brodajogo.setVisible(false);
JOptionPane.showMessageDialog(null,
"Excedido número de tentativas - Fim de Jogo", "Aviso",
2);
}
return;
}
}
public void windowActivated(WindowEvent ev) {}
public void windowClosed(WindowEvent ev) {}
public void windowClosing(WindowEvent ev) {}
public void windowDeactivated(WindowEvent ev) {}
public void windowDeiconified(WindowEvent ev) {}
public void windowIconified(WindowEvent ev) {}
public void windowOpened(WindowEvent ev) {}
}
PS.: Aproveito para enviar os gifs…atachados
sds