[resolvido] Itens da Janela

3 respostas
M

Galera, uma ajuda aqui, to implementando um sistema de coleta de informações, nesse caso uma que colete o estado (UF) e a descrição do estado(nome completo e etc). Porém alguma coisa tá errada, e os itens não são exibidos com a janela.

aqui vai o código.
package Cadastros;

import javax.swing.*;
import java.awt.event.*;

	public class CAD_uf extends JFrame{
		
		/**criação das variáveis**/
		
		JButton PB_novo, PB_gravar, PB_excluir, PB_alterar, PB_sair, PB_proximo, PB_anterior, PB_inicio, PB_final;
		JFrame JF_janela;
		JPanel JP_painel;
		JLabel LB_uf,LB_descricao;
		JTextField TF_uf, TF_descricao;
		
		/*instanciamento das variáveis*/
		
		public CAD_uf(){ //apenas public / public void => apenas controle
			super(">>>>SISTEMA DE CADASTRO - UF<<<<");
			
		//	Container JF_janela = getContentPane();
	//		JF_janela.setLayout(null);          
			
			/*----Instanciamento do Frame----*/
			
			JF_janela   = new JFrame();
			
			//painel
			
			JP_painel   = new JPanel();
			
			/*-----Instanciamento Botões-----*/
			
			PB_novo     = new JButton();
			PB_gravar   = new JButton();
			PB_alterar  = new JButton();
			PB_inicio   = new JButton();
			PB_anterior = new JButton();
			PB_proximo  = new JButton();
			PB_excluir  = new JButton();
			PB_final    = new JButton();
			PB_sair     = new JButton();
			
			/*---Instanciamento dos Labels---*/
			
			LB_uf       = new JLabel();
			LB_descricao= new JLabel();
			
			/*--------Campos de Texto--------*/

			TF_uf       = new JTextField();
			TF_descricao= new JTextField();
			
			
			/*------------teclas-de-atalhos-------------*/
			PB_alterar.setMnemonic  (KeyEvent.VK_A);
			PB_final.setMnemonic    (KeyEvent.VK_F);
			PB_gravar.setMnemonic   (KeyEvent.VK_G);
			PB_inicio.setMnemonic   (KeyEvent.VK_I);
			PB_novo.setMnemonic     (KeyEvent.VK_N);
			PB_anterior.setMnemonic (KeyEvent.VK_O);
			PB_sair.setMnemonic     (KeyEvent.VK_S);
			PB_excluir.setMnemonic  (KeyEvent.VK_X);
			
			/*------Adicionando elementos à janela------*/
			
			JF_janela.add(JP_painel);
			JP_painel.add(LB_uf);
			JP_painel.add(TF_uf);
			JP_painel.add(LB_descricao);
			JP_painel.add(TF_descricao);
			JP_painel.add(PB_novo);
			JP_painel.add(PB_gravar);
			JP_painel.add(PB_alterar);
			JP_painel.add(PB_inicio);
			JP_painel.add(PB_anterior);
			JP_painel.add(PB_proximo);
			JP_painel.add(PB_excluir);
			JP_painel.add(PB_final);
			JP_painel.add(PB_sair);

			
			setVisible(true);
			setSize(800,600);
			setLocationRelativeTo(null);


		
	/*	PB_sair.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				int resposta;
				resposta=JOptionPane.showConfirmDialog(null,"Deseja realmente sair?","Mensa" +
						"gem do Programa",JOptionPane.YES_NO_OPTION);
				if (resposta==0)
					System.exit(0);
				}
			});
		*/
		}	
		
		public static void main (String args[]){
			CAD_uf app = new CAD_uf();
			app.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	
		}
	}

Sinto que é algo bem básico, mas não consigo descobrir o que é... =\

3 Respostas

Ironlynx

Mauricio1993, tá meio zoneado o seu código.Aconselho a dar uma lida aqui:
http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html
aqui:
http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html
e aqui:
http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

Alguns detalhes:
Está comentado no seu código, mas se for tentado eu lhe digo:JAMAIS use um layout nulll.
Lembre-se que o BorderLayout é o layout padrão para as classes JFrame, JWindow, JDialog, JInternalFrame e JApplet; dividindo o seu container em 5 regiões.Como está, vários seriam sobrepostos entre si.

Vc usa(adiciona ao JFrame):
JF_janela.add(JP_painel);
Antes mesmo de seus componentes serem adicionados ao JPanel!!!
use setVisible como a última linha para montar a sua tela, afinal, vc só a exibirá depois de ela estarcom tudo certinho(tamanho,posição…) para ser mostrada ao usuário.

M

valeu pela ajuda, já consegui resolver…

Ironlynx, valeu pelos links, eu vou dar uma olhadinha neles, o problema da janela era um

this.getContentPane().add(JP_painel);

no lugar d JF_janela.add(JP_painel)

anyway, valeu ae 8)

Ironlynx

Isso:

this.getContentPane().add(JP_painel);

Resolve apenas para exibir os itens na tela(provavelmente uma linha cheia de componentes olhando a forma como vc os adicionou).Para ficarem usáveis, leia os links com carinho. :wink:

[]´ção!

Criado 29 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 3
Participantes 2