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
[code]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();
}
}
}[/code]
LegendaPainel
[code]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;
}
}
}
}
}[/code]
O resultado da tela é esse:
Obrigado.
