Dimensão dos Botões perdida

0 respostas
R

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





Criado 6 de fevereiro de 2010
Respostas 0
Participantes 1