Dimensão dos Botões perdida

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