JFrame e Orientação a Objeto

6 respostas
J

Pessoal,

Tenho um JFrame básico, estou tentando criar o conteúdo do mesmo usando diversas classes JPanel para isto.

Só que na hora de montar apenas a primeira fica visivel parece que as outras ficam atrás, é possível montar uma JFrame composta por vários JPanels diferentes e separados?

Obrigadão!

6 Respostas

O

Cara, é possível sim. Você está codificando na mão mesmo ?

Para montar uma janela com varios JPanels separados é necessário adicioná-los em algum gerenciador de layout.
Por default, o JFrame vem com o gerenciador de layout chamado BorderLayout.

Um exemplo aproveitando esse gerenciador de layout:

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Teste {
	public static void main(String[] args) {
		JFrame f = new JFrame("Titulo");
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(400, 300);
		f.setLocationRelativeTo(null);
		
		JPanel p1 = new JPanel();
		JPanel p2 = new JPanel();
		JPanel p3 = new JPanel();
		
		p1.setBackground(Color.RED);
		p2.setBackground(Color.GREEN);
		p3.setBackground(Color.BLUE);
		
		f.getContentPane().add(p1, BorderLayout.NORTH);
		f.getContentPane().add(p2, BorderLayout.CENTER);
		f.getContentPane().add(p3, BorderLayout.SOUTH);
		
		f.setVisible(true);
	}
}

Não sei se esse era a sua dúvida, espero ter ajudado.

lina

Jingo:
é possível montar uma JFrame composta por vários JPanels diferentes e separados?
Obrigadão!

Oi,

Sim… isso dependerá do tipo de layout utilizado.

Tchauzin!

J

Pessoal era isso mesmo que eu queria saber, muito obrigado pela ajuda!

Por determinação da empresa estou decoficando com Netbeans 6.5, desenhar telas nele é uma bosta, se fosse na mão o trabalho já estaria muito mais avançado.

Obrigado novamente, até mais.

wilson_sm

Bom dia,

só lembrando que ele poderia utilizar o gerenciador de Layout FlowLayout(), para os botões e campos de textos.
O FlowLayout() deixa os itens ordenados na sequência em que eles forem inseridos. Ex:

...
f.add(label1);
f.add(campoTx1);
f.add(button1);
...

Espero ter ajudado em mais um modo de gerenciar layouts

Marky.Vasconcelos

Nem… sei que isso não tem muito a ver com o tópico mas vou mostrar o código para montar uma das telas do meu sistema (Só a parte para orientar os componentes)

[		JPanel topPanel = new JPanel(new MigLayout());
		topPanel.add(cotacaoNumber);
		topPanel.add(date, "wrap");
		topPanel.add(empresaSearch);
		topPanel.add(empInfo);

		JPanel destinoPanel = new JPanel(new MigLayout());
		destinoPanel.add(new TitledSeparator("Destino"), "growx, span");
		destinoPanel.add(loadPraca);
		destinoPanel.add(destino);
		destinoPanel.add(prazoEntrega);
		destinoPanel.add(pracaSearch);
		destinoPanel.add(fretePeso);
		destinoPanel.add(freteValor);
		destinoPanel.add(pedagio);

		JPanel cifFob = new JPanel();
		cifFob.add(cif);
		cifFob.add(fob);

		JPanel calcPanel = new JPanel(new MigLayout());
		calcPanel.add(new TitledSeparator("Info. N.F."), "growx, span");
		calcPanel.add(peso);
		calcPanel.add(valorNF);
		calcPanel.add(qtdTtl);
		calcPanel.add(cifFob, "wrap");
		calcPanel.add(new TitledSeparator("Info. Cot."), "growx, span");
		calcPanel.add(taxa);
		calcPanel.add(outros);
		calcPanel.add(freteFechado);
		calcPanel.add(prazoPgmt, "wrap");
		calcPanel.add(icms);
		calcPanel.add(calcButton);
		calcPanel.add(totalFrete);
		calcPanel.add(totalFreteIcms);

		JPanel buttonsPane = new ButtonsPanel(new ButtonsHandlerImpl());

		Container content = getContentPane();
		content.setLayout(new MigLayout());
		content.add(topPanel, "span");
		content.add(medidasPanel, "span, growx");
		content.add(destinoPanel, "span");
		content.add(calcPanel);
		content.add(buttonsPane, "center");
		pack();

Repare que realmente são varios JPanels organizados e herança de alguns JPanels que fazem coisas em comum entre telas.

I

Jingo:
Pessoal era isso mesmo que eu queria saber, muito obrigado pela ajuda!

Por determinação da empresa estou decoficando com Netbeans 6.5, desenhar telas nele é uma bosta, se fosse na mão o trabalho já estaria muito mais avançado.

Obrigado novamente, até mais.

Sobre desenhar telas swing, o netbeans é a “melhor” escolha, tirando o “lixo” de codigo gerado pelo netbeans é mais facil utiliza-lo para este fim.

Criado 1 de fevereiro de 2010
Ultima resposta 2 de fev. de 2010
Respostas 6
Participantes 6