Modelar tela de cadastro

Olá programadores,

Eu estou com um probleminha.

Ja fiz toda a base do programa funcionar, só que estou com um problema na interface.

Quero montar uma tela mais ou menos assim.

Nome:[valor edital]
Endereço:[valor edital]
Telefone:[valor edital]

Janeiro…Fevereiro …Dezembro
[valor edital] [valor edital] [valor edital] [valor edital]

Sendo tudo em um mesma tela.
Pelo que me parece usa-se se JTexFiel e JLabel.

O que me complica, até aqui, e receber esses valores assim. Porque já consegui fazer com outro componente gráfico.

Na verdade o que mais me complico e no Layout.

Queria pedir um exemplo código, e se vocês souberem também de algo tutorial simples, que explique sobre Layout também agradeço, que pesquisei e so achei dor de cabeça.

Desde já agradeço atenção.
Abraço.

Wesley.

Para esse tipo de interface eu indico o SwingBean

Valeu meu brother,
muito obrigado mesmo, mas eu estou querendo o código fonte pronto.
Será que tem como?
Abraço.
Valeu.
E uma aplicação Desktop.
E não pretendo trabalhar com Framework.
Aguardo!!!

Pois é, pra isso existem os frameworks, eles são códigos prontos. Mas enfim, se vc quer fazer na mão, recomendo que vc construa um método na interface que popule a a classe que possui as informações e retorne através de um método get ou coisa do gênero. Como vc disse que tem dificuldade com o Layout, eu sugeri o SwingBeam pq vc não precisa se preocupar com Layout. Mas se vc kiser usar um Layout no Braço, recomento o GroupLayout ou GridBag. No site da SUN vc encontra tutorias sobre esses Layouts.
Enfim, ainda indicaria para vc pelo menos visitar o site do frameworks, já que lá ele coloca uns exemplos de tela que vc pode encontrar o que precisa.

[quote]Pois é, pra isso existem os frameworks, eles são códigos prontos. Mas enfim, se vc quer fazer na mão, recomendo que vc construa um método na interface que popule a a classe que possui as informações e retorne através de um método get ou coisa do gênero. Como vc disse que tem dificuldade com o Layout, eu sugeri o SwingBeam pq vc não precisa se preocupar com Layout. Mas se vc kiser usar um Layout no Braço, recomento o GroupLayout ou GridBag. No site da SUN vc encontra tutorias sobre esses Layouts.
Enfim, ainda indicaria para vc pelo menos visitar o site do frameworks, já que lá ele coloca uns exemplos de tela que vc pode encontrar o que precisa.[/quote]

Como falei irmão, minha aplicação e desktop, e olhei o framwork, gostei, so que e desktop.
E vou dar uma olhada nos métodos, e que realmente eu não me dou bem com interface. Acho que vou ficar na parte de levantamento de requisitos, ou Banco de Dados, porque programação é boa, e até me dou bem com lógica, mas interface eu apanho.rsrsrs.

Obrigado, eu vou dar uma olhadinha. E vou tentar, creio que consigo e posto aqui.
Você pode me mandar o modelo de uma caixa na tela?
Para eu ver como o método funciona.

Valeu mesmo pela atenção.
Um abraço.

Cara, sinceramente ainda não entendi o que vc quer… vc quer só a interface pronta ??? O problema é construir uma interface Desktop ?? te recomendo o NetBeans… ele constroi pra ti e se não quiser nem olhar o código quie ele preparou, pode… www.netbeans.org

Ou queres que a interface funcione já com tua lógica e tuas regras de negócio ??

Aí é complicado…

Falows :wink:

Mas o framework que passei é pra Desktop, então não entendo quando vc continua afirmando que quer uma interface Desktop…

heheheh pior… ainda não conhecia o SwingBean, mas depois dessa aqui fui lá pra conferir… o Projeto parece sewr muito fera mesmo… só não gosto da Pilha de XMLs… vou verificar com mais calma quando chegar em casa…

Acho que ele nem olhou a página do SwingBean… hehehehehhee

Pois é, de início os XML´s parecem meio estranhos mesmo, mas depois vc acostuma. O bom que vc só faz uma classe, e pode fazer vários XML para a mesma tela. Para quem trabalhar com Hibernate é muito bom, já que vc vai ter que fazer os beans de persitênsia, vc praticamente não faz uma linha de código a mais, apenas os XML configurando. Além disso, vc pode configurar os componentes gráficos como kiser. Eu construi um textField personalizado para moeda, utilizando BigDecimal e configurei o SwingBena para utilizá-lo toda como padrão quando minha classe tiver um BigDecimal. Enfim, a parte de tabelas do SwingBean também é muito boa, vc não precisa implementar model nenhum também, só usar a JBeanTable.

Caros colegas,

Ta complicado entender é?
rsrsrsrsrs.
Sim, esqueci de falar, eu sou novo em java.ok?
Não sabia que podia usar frameworks para aplicação desktop.
Foi bom que aprendi.

Eu já tenho o negócio rodando, só que tudo na swing JOption, e queria fazer uma telinha como todo programinha tem.

E eu olhei sim, o framework SwingBeam, e gostei muito, só que não sabia que podia usa-lo em desktop.ok?

Eu uso o Netbeans, e não queria ficar preso ao código que ele faz. Geralmente o pessoal não recomenda.

Eu queria aprender a fazer essas telinhas, tudo no lugar.
Era isso minha dúvida.
E aproveitaria uma aplicação funcionando pra isso.

Se vocês poderem postar um código(para aprender a usar), criando uma caixinha e recebendo os dados dessa caixa, já me ajudaria.

Valeu pela atenção.
Foi de grande avalia.
Grato.

Entrando na onda da galera que fez códigos no Natal, fiz aqui umas classe pra vc testar, fazendo tela de forma programática:

[code]public class Pessoa {
private String nome;
private String endereco;
private String telefone;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}

}[/code]

[code]public class PainelCadastroPessoa extends JPanel {
private JTextField fieldNome;
private JTextField fieldEndereco;
private JTextField fielTelefone;
public PainelCadastroPessoa() {
super();
initComponents();
}

private void initComponents() {
	GroupLayout layout=new GroupLayout(this);
	this.setLayout(layout);
	fielTelefone=new JTextField();
	fieldNome=new JTextField();
	fieldEndereco=new JTextField();
	JLabel labelNome=new JLabel("Nome");
	JLabel labelTelefone=new JLabel("Telefone");
	JLabel labelEndereco=new JLabel("Endereco");
	
	//definindo o tamanho máximos dos campos
	fieldEndereco.setMaximumSize(new Dimension(610, 20));
	fieldNome.setMaximumSize(new Dimension(300, 20));
	fielTelefone.setMaximumSize(new Dimension(300, 20));
	JButton botaoImprimir=new JButton("Imprimir dados");
	botaoImprimir.addActionListener(new ListenerImprimir(this));
	
	
	//Criando gaps automáticos
	layout.setAutoCreateGaps(true);
	layout.setAutoCreateContainerGaps(true);
	
	
	//organizando posicionamento vertical
	layout.setHorizontalGroup(
			layout.createParallelGroup(GroupLayout.Alignment.CENTER)
			.addGroup(layout.createSequentialGroup()
					.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
					.addComponent(labelNome)
					.addComponent(fieldNome))
					.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
					.addComponent(labelTelefone)
					.addComponent(fielTelefone)
					
				)
			)
			.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
					.addComponent(labelEndereco)
					.addComponent(fieldEndereco)
			)
			.addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
			.addComponent(botaoImprimir)
			)
		);

// Organizando posicionamento vertical
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addComponent(labelNome)
.addComponent(fieldNome)
)
.addGroup(layout.createSequentialGroup()
.addComponent(labelTelefone)
.addComponent(fielTelefone)

				)
			)
			.addGroup(layout.createSequentialGroup()
					.addComponent(labelEndereco)
					.addComponent(fieldEndereco)
			)
			.addGroup(layout.createSequentialGroup()
			.addComponent(botaoImprimir)
			)
		);	
}






public void setFields(Pessoa pessoa){
	fieldEndereco.setText(pessoa.getEndereco());
	fielTelefone.setText(pessoa.getTelefone());
	fieldNome.setText(pessoa.getNome());
}

public Pessoa getPessoa(){
	Pessoa pessoa=new Pessoa();
	pessoa.setNome(fieldNome.getText());
	pessoa.setEndereco(fieldEndereco.getText());
	pessoa.setTelefone(fielTelefone.getText());
	return pessoa;
}

}
[/code]

[code]public class ListenerImprimir implements ActionListener {
public ListenerImprimir(PainelCadastroPessoa painel) {
super();
this.painel = painel;
}

private PainelCadastroPessoa painel;

public void actionPerformed(ActionEvent e) {
	Pessoa pessoa=painel.getPessoa();
	System.out.println("Nome: "+pessoa.getNome());
	System.out.println("Telefone: "+pessoa.getTelefone());
	System.out.println("Endereço: "+pessoa.getEndereco());

}

}
[/code]

[code]public class JanelaTeste {

/**
 * @param args
 */
public static void main(String[] args) {
	JFrame frame=new JFrame("Cadastro de Pessoa");
	frame.setSize(400,400);
	frame.setContentPane(new PainelCadastroPessoa());
	frame.setVisible(true);

}

}
[/code]

Eu gosto de usar o GroupLayout, mas o pessoal também curte usar o GridBagLayout. Enfim, repara que se vc usasse o SwingBean, iria dar muito menos linha de código, mas como vc quer fazer na mão, veja o exemplo e seja feliz.

Caro renzonuccitelli,

Obrigado brother!

Vou testar e qualquer dúvida eu posto.
Você fez tudo, valeu mesmo.
Deve ter dado um trabalhão.
Valeu.
Abraço.

Pronto Galera,

Valeu mesmo,

Agora vou mexer um pouco no código e estuda-lo.

Um forte abraço.
E feliz 2009.
Até a proxima.

Opa, vc pode utilizar o google para fazer pesquisas, inclusive procurar exemplos. No entanto um dos melhores lugares para vc começar é aqui.

Trail: Creating a GUI with JFC/Swing

inclusive com exemplos de código que você pode visualizar, baixar, rodar, alterar, testar;

[]'s