Dúvida simples de GUI

5 respostas
douglas_vidotto

Olá pessoal, eu tenho uma dúvida simples sobre o JFrame. Estou confuso no funcionamento do método que adiciona componentes na Janela. Por exemplo, para criar uma janela e adicionar componentes, de acordo com um exemplo que eu vi, eu faço:

Jframe frame = new JFrame(); frame.getContentPane().add(botao); //supondo que o objeto botao ja foi criado

Eu não entendi o funcionamento desse método getContentPane(). O meu objeto frame chama getContentPane, e esse chama o método add()? Como que funciona essa chamada do código acima? Não sabia que podia haver a chamada de dois métodos dessa forma.

Valeu ae, abraços!

5 Respostas

abelgomes

nao é que esta chamando 2 metodos é pq o metodo getContentPane() retorna um objeto e esse objeto tem o metodo add

entao o metodo add do pane que ja tem um layout adicionado o componente nesse leyout entao dependendo do layout ele forma a tela de um jeito :wink:

tipo grid a tela fica gual a uma matriz…e assim por diante

esse lance de 2 metodos seguidos pode ser simplificado assim

package guj;

class Pessoa {
	private String nome;
	private Integer idade;
	private Integer cpf;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Integer getIdade() {
		return idade;
	}

	public void setIdade(Integer idade) {
		this.idade = idade;
	}

	public Integer getCpf() {
		return cpf;
	}

	public void setCPF(Integer cpf) {
		this.cpf = cpf;
	}

}

public class Funcionario{

  private Pessoa p;

  public Pessoa getPessoa(){
    return p;
}
}


//entao la na sua classe de teste vc pode fazer assim

funcionario.getPessoa().getCpf();

//pq ele retorna uma Pessoa e dentro de Pessoa vc tem o getCpf()

abraço :wink:

fabiofalci

Sempre use JPanels para fazer suas telas. JFrame é um top-level container… estude esse link

http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html

T

getContentPane retorna um java.awt.Container, que é o “Content Pane”, que é a superfície principal onde você põe os componentes em um JFrame.
Por sua vez, o método add de java.awt.Container é o que você usa para adicionar botões ao “Content Pane”, que é o Container do JFrame onde você adiciona os botões, ou outros JPanels.

Swing é um pouco complexo mesmo (não é suficiente “debulhar” a API, ou o Javadoc); é necessário ler alguns livros sobre Swing.

abelgomes

da uma lida tb em OO…sabendo bem OO vc aprende swing bem mais rapido…

douglas_vidotto

Entendi, valeu mesmo galera, vou estudar oque voces recomendaram. Abraços!

Criado 5 de dezembro de 2008
Ultima resposta 5 de dez. de 2008
Respostas 5
Participantes 4