Ajuda no Tamanho de JPanel (DUVIDA SOLUCIONADA)

4 respostas
G

Boa Tarde galera!!!
Estou com uma duvida como eu faço para diminuir o tamanho de um JPanel que esta dentro de um JFrame?
Quero que o JPanel criado no metodo montaPainelBotoes() fique menor que esta aparecendo na tela
para poder colocar mais um JPanel.
Ja dei uma olhada em alguns artigos, mas nenhum me ajudou, por isso que criei este tópico.

código

package br.com.devmedia.completeswingapp.frames;

import javax.swing.JFrame;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class FrmPrincipal extends JFrame {
	
	private static final long serialVersionUID = 1L;

	public FrmPrincipal(){
		
		try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
		} catch (ClassNotFoundException e) {
			Logger.getLogger(FrmPrincipal.class.getName()).log(Level.SEVERE, null, e);
		} catch (InstantiationException e) { 
			Logger.getLogger(FrmPrincipal.class.getName()).log(Level.SEVERE, null, e);
		} catch (IllegalAccessException e) { 
			Logger.getLogger(FrmPrincipal.class.getName()).log(Level.SEVERE, null, e);
		} catch (UnsupportedLookAndFeelException e) { 
			Logger.getLogger(FrmPrincipal.class.getName()).log(Level.SEVERE, null, e);
		}
	
		formPrincipalDaAplicacao();
	}
	
	public void formPrincipalDaAplicacao(){
		setTitle("Complete Swing app");
		setSize(408, 334);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setResizable(false);
		setLocationRelativeTo(null);
		add(painelDaAplicacao());
		setVisible(true);
	}
	
	public JPanel painelDaAplicacao(){
		JPanel painel = new JPanel();
		painel.setLayout(new BorderLayout());
		JLabel tituloDoPainel = new JLabel("Welcome to Complete Swing App - The Pet Shop",JLabel.CENTER);
		tituloDoPainel.setFont(new Font("Arial Black",0,12));
		painel.add(tituloDoPainel, BorderLayout.NORTH);
		painel.add(montaPainelBotoes(),BorderLayout.CENTER);	
		painel.add(montaPainelText(), BorderLayout.SOUTH);
		return painel;
	}
	
	public JPanel montaPainelBotoes(){
		JPanel painelBotoes = new JPanel();
		
		painelBotoes.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true)); 
		painelBotoes.setLayout(new FlowLayout(FlowLayout.CENTER,45,5));
		JButton bUsers = new JButton("Users");
		JButton bAnimals = new JButton("Animals");
		JButton bCustomers = new JButton("Customers");
		JButton bProducts = new JButton("Products");
		JButton bSchedule = new JButton("Schedule");
		JButton bSells = new JButton("Sells");

		painelBotoes.add(bUsers);
		painelBotoes.add(bAnimals);
		painelBotoes.add(bCustomers);
		painelBotoes.add(bProducts);
		painelBotoes.add(bSchedule);
		painelBotoes.add(bSells);
		
		return painelBotoes;
	}
	
	public JPanel montaPainelText(){
		
		JPanel painelBotoes = new JPanel();
		painelBotoes.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true)); 
		painelBotoes.setLayout(new FlowLayout(FlowLayout.CENTER,45,25));
		JButton bUsers = new JButton("Teste");
		JButton bAnimals = new JButton("Teste");
		JButton bCustomers = new JButton("Teste");
		JButton bProducts = new JButton("Teste");
		JButton bSchedule = new JButton("Teste");
		JButton bSells = new JButton("Teste");

		painelBotoes.add(bUsers);
		painelBotoes.add(bAnimals);
		painelBotoes.add(bCustomers);
		painelBotoes.add(bProducts);
		painelBotoes.add(bSchedule);
		painelBotoes.add(bSells);
		return painelBotoes;
	}
	
	public static void main(String args[]){
		FrmPrincipal t = new FrmPrincipal();
	}
}

4 Respostas

R

kra não sei se entendi bem, mas se for após criar o painel usa o método setBouds pra definir posicionamento e tamanho do mesmo.

G

acabei de fazer isso, mas nao deu certo!
vlw pela atenção

L

tenta trocar o BorderLayout pelo GridLayout. :?:

public JPanel painelDaAplicacao(){  
       JPanel painel = new JPanel();  
        painel.setLayout(new GridLayout(3, 1));  
       JLabel tituloDoPainel = new JLabel("Welcome to Complete Swing App - The Pet Shop",JLabel.CENTER);  
        tituloDoPainel.setFont(new Font("Arial Black",0,12));  
        painel.add(tituloDoPainel);  
        painel.add(montaPainelBotoes());      
        painel.add(montaPainelText());  
        return painel;  
 }
G

Vlw pelo conhecimento lalau!!!
Troquei no método painelDaAplicacao() o painel(variavel de referencia) para FlowLayout,
e no método montaPainelBotoes() a painelBotoes(variavel de referencia) para GridLayout passando os parametros
linha 2, coluna 3, espaço horizontal 5, espao vertical 2.
E ficou do jeito que eu queria.

Embaixo esta os métodos alterado!

public JPanel painelDaAplicacao(){  
        JPanel painel = new JPanel();  
        painel.setLayout(new FlowLayout());  //linha alterada
        JLabel tituloDoPainel = new JLabel("Welcome to Complete Swing App - The Pet Shop",JLabel.CENTER);  
        tituloDoPainel.setFont(new Font("Arial Black",0,12));  
        painel.add(tituloDoPainel);  
        painel.add(montaPainelBotoes());      
        painel.add(montaPainelText());  
        return painel;  
}
public JPanel montaPainelBotoes(){  
        JPanel painelBotoes = new JPanel();  
          
        painelBotoes.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));   
      	painelBotoes.setLayout(new GridLayout(2,3,5,2));    // linha alterada 
        JButton bUsers = new JButton("Users");  
        JButton bAnimals = new JButton("Animals");  
        JButton bCustomers = new JButton("Customers");  
        JButton bProducts = new JButton("Products");  
        JButton bSchedule = new JButton("Schedule");  
        JButton bSells = new JButton("Sells");  
  
        painelBotoes.add(bUsers);  
        painelBotoes.add(bAnimals);  
        painelBotoes.add(bCustomers);  
        painelBotoes.add(bProducts);  
        painelBotoes.add(bSchedule);  
        painelBotoes.add(bSells);  
          
        return painelBotoes;  
    }
Criado 1 de setembro de 2012
Ultima resposta 3 de set. de 2012
Respostas 4
Participantes 3