Ajuda com Tela Secundária

1 resposta
ZombieW

Olá a todos,

Voltei depois de muito tempo a trabalhar num projeto de Batalha Naval que eu tenho (para aprendizado mesmo), e estou com um problema:

Eu tenho uma tela secundária onde fica a legenda, nessa tela eu tenho textos e botões, porém, esses botões não estão ficando do tamanho pré-definido por mim.

Seguem as classes:

Legenda

package BS;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Legenda extends JFrame implements KeyListener{
    private LegendaPainel lp;
    public Legenda(){
        super("Legenda");
        this.addKeyListener(this);
        setLayout(new FlowLayout());
        lp = new LegendaPainel();
        add(lp);
        setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
        setResizable(false);
        setSize(600,275);
        setVisible(true);
    }
    /**
     * Evento para fechar apertando ESC
     * @param ke parâmetro do KeyPress (tecla pressionada)
     */
    public void keyTyped(KeyEvent ke){}
    public void keyPressed(KeyEvent ke){}
    public void keyReleased(KeyEvent ke){
        if(ke.getKeyCode() == KeyEvent.VK_ESCAPE){
            dispose();
        }
    }
}

LegendaPainel

package BS;
import java.awt.GridLayout;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class LegendaPainel extends JPanel{
    private JButton botaoBarco;
    public LegendaPainel(){
        setLayout(new GridLayout(9,6));
        String[] vetNomeBarco = new String[9];
        vetNomeBarco[0] = "Submarinos";
        vetNomeBarco[1] = "Cruzadores";
        vetNomeBarco[2] = "Hidro-Avioes";
        vetNomeBarco[3] = "";
        vetNomeBarco[4] = "Cargueiros";
        vetNomeBarco[5] = "Encouraçados";
        vetNomeBarco[6] = "Porta-Avião";
        vetNomeBarco[7] = "Acerto";
        vetNomeBarco[8] = "Erro";
        for(int i=0;i<vetNomeBarco.length;i++){
            switch(i){
                case 0:{
                    //Submarino - Tamanho 1 (5)
                    JLabel labelBarco1 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco1);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton(" ");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Submarino");
                        if(j>=1){
                            botaoBarco.setVisible(false);
                        }
                        Color vinho = new Color(128,0,0);
                        botaoBarco.setBackground(vinho);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 1:{
                    //Cruzadores - Tamanho 2 (2)
                    JLabel labelBarco2 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco2);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Cruzador");
                        if(j>=2){
                            botaoBarco.setVisible(false);
                        }
                        botaoBarco.setBackground(Color.YELLOW);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 2:{
                    //Hidro-Avioes - Tamanho 3 (diagonais) - Linha 1 (2)
                    JLabel labelBranco = new JLabel(vetNomeBarco[i]);
                    add(labelBranco);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Hidro-Avião");
                        if(j!=1){
                            botaoBarco.setVisible(false);
                        }
                        botaoBarco.setBackground(Color.LIGHT_GRAY);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 3:{
                    //Hidro-Avioes - Tamanho 3 (diagonais) - Linha 2 (1)
                    JLabel labelBarco3 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco3);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Hidro-Avião");
                        if(j==1 || j>=3){
                            botaoBarco.setVisible(false);
                        }
                        botaoBarco.setBackground(Color.LIGHT_GRAY);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 4:{
                    //Cargueiros - Tamanho 3 (2)
                    JLabel labelBarco4 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco4);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Cargueiro");
                        if(j>=3){
                            botaoBarco.setVisible(false);
                        }
                        Color laranjaEscuro = new Color(225,113,0);
                        botaoBarco.setBackground(laranjaEscuro);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 5:{
                    //Encouraçados - Tamanho 4 (1)
                    JLabel labelBarco5 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco5);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Encouraçado");
                        if(j>=4){
                            botaoBarco.setVisible(false);
                        }
                        botaoBarco.setBackground(Color.DARK_GRAY);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 6:{
                    //Porta-Avioes - Tamanho 5 (1)
                    JLabel labelBarco6 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco6);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Porta-Avião");
                        Color roxo = new Color(128,0,128);
                        botaoBarco.setBackground(roxo);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
                case 7:{
                    //Acerto - Tamanho 1
                    JLabel labelBarco7 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco7);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Acerto");
                        if(j>=1){
                            botaoBarco.setVisible(false);
                        }
                        botaoBarco.setBackground(Color.GREEN);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                        }
                    break;
                }
                case 8:{
                    //Erro - Tamanho 1
                    JLabel labelBarco8 = new JLabel(vetNomeBarco[i]);
                    add(labelBarco8);
                    for(int j=0;j<=4;j++){
                        botaoBarco = new JButton("");
                        botaoBarco.setSize(20, 20);
                        botaoBarco.setToolTipText("Erro");
                        if(j>=1){
                            botaoBarco.setVisible(false);
                        }
                        botaoBarco.setBackground(Color.RED);
                        botaoBarco.setEnabled(false);
                        add(botaoBarco);
                    }
                    break;
                }
            }
        }
    }
}

O resultado da tela é esse:

[img]http://i70.servimg.com/u/f70/17/53/75/18/legend10.jpg[/img]
http://i70.servimg.com/u/f70/17/53/75/18/legend10.jpg

Obrigado.

1 Resposta

ZombieW

Pode fechar, foi um problema com o Layout.

Caso queiram a solução, favor pedir.

Criado 1 de março de 2013
Ultima resposta 4 de mar. de 2013
Respostas 1
Participantes 1