Problemas com JComboBox

8 respostas
remixlara

Pessoal… estou utilizando eclipse pra desenvolver um sistema e tou com alguns problemas.

Criei um JComboBox e ao compilar o programa esse jcombobox não aparece como deveria… ficando dessa forma como na imagem

IMAGEM:

OBS.: Descobri que ao minimizar e posteriormente restaurar os combobox voltam ao normal.

Como poderia resolver isso?

abraços a todos…

8 Respostas

lina

Oi,

Você está utilizando algum layout? Esse seu JComboBox não está conflitando o setBounds (posicoes) com outros componentes?
Você já tentou dar um repaint em seu painel?

Tchauzin!

M

Isso está me cheirando a null leiaute… e isso costuma dar muito problema. Ou estou enganado?

De qualquer forma, poste o código aqui para podermos ajudar.

devel.andrerocha

Posta o fonte do frame…

remixlara

AHauhAUHauahU

ta cheirando sim a null layout

eu resolvi em partes o problema… quando eu utilizo JPanel e adiciono o JComboBox ele não aparece…

porem quando eu uso o JTabbedPane como tinha utilizado em outras telas este problema não ocorreu mais…

agora eu sei q o problema ocorria quando eu colocava o JComboBox junto com o JPanel…

Verifiquei o setBounds e não da conflito com nenhum outro componente…

Testei adicionando apenas 1 JComboBox e o problema continuou com o JPanel…

Lina (nome de minha irmã xD) quando alterei o layout ele ainda continou da mesma forma ;O

Se alguem souber como resolver!!

Abraços…

M

Sem o fonte fica difícil achar o problema, mas lhe adianto: null leiaute, em geral, é uma solução muito ruim para projetos em swing. É melhor investir algumas horas estudando sobre os gerenciadores de leiaute do que perder dias (ou até semanas) tentando corrigir bugs do programa.

Fernando_Generoso_da

começa estudando por esse:

http://www.jgoodies.com/downloads/libraries.html (JGoodies Forms)

Fernando

remixlara

Esse jPanel apresenta o mesmo problema que ocorreu anteriormente.

Não reparem os erros... xD

principalmente na maskara... vou mudar isso ainda ;]

abraços

/**
 * Autor NPDI
 * classe referente a interface gráfica de cadastro de Campus
 */

package interfaceGrafica;

import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;

import java.awt.Cursor;
import java.awt.Font;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import util.mascaras.JTelefoneField;
import util.mascaras.JCEPField;

public class PanelCadastrarCampus extends PanelBaseCadastros {

	private JPanel jPanelCadastrarCampus = null;
	private JLabel jLabelNomeCampus = null;
	private JTextField jTextFieldNomeCampus = null;
	private JLabel jLabelSiglaCampus = null;
	private JTextField jTextFieldSiglaCampus = null;
	private JLabel jLabelTelefoneCampus = null;
	private JTextField jTextFieldLogradouroCampus = null;
	private JTextField jTextFieldBairroCampus = null;
	private JTextField jTextFieldNumeroCampus = null;
	private JTextField jTextFieldComplementoCampus = null;
	private JTextField jTextFieldCidadeCampus = null;
	private JTextField jTextFieldPaisCampus = null;
	private JLabel jLabelLogradouroCampus = null;
	private JLabel jLabelBairroCampus = null;
	private JLabel jLabelNumeroCampus = null;
	private JLabel jLabelCidadeCampus = null;
	private JLabel jLabelComplementoCampus = null;
	private JTelefoneField jTelefoneFieldTelefoneCampus = null;
	private JCEPField JCEPFieldCEPCampus = null;
	String uf[] = {"", "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SO", "TO"};  //  vetor para estado 
	private JLabel jLabePaisCampus = null;
	private JComboBox jComboBoxUFCampus = null;
	private JLabel jLabelUFCampus = null;
	private JLabel jLabelCEPCampus = null;
	public PanelCadastrarCampus() {
		super();
		initialize();
		adicionaEventosCampus();
		
	}

	/**
	 * This method initializes this
	 * 
	 */
	private void initialize() {
        this.add(getJPanelCadastrarCampus(), null);
			
	}

	/**
	 * This method initializes jPanelCadastrarCampus	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	public JPanel getJPanelCadastrarCampus() {
		if (jPanelCadastrarCampus == null) {
			jLabelCEPCampus = new JLabel();
			jLabelCEPCampus.setBounds(new Rectangle(470, 259, 28, 20));
			jLabelCEPCampus.setText("CEP");
			jLabelUFCampus = new JLabel();
			jLabelUFCampus.setBounds(new Rectangle(481, 230, 17, 20));
			jLabelUFCampus.setText("UF");
			jLabePaisCampus = new JLabel();
			jLabePaisCampus.setBounds(new Rectangle(103, 260, 30, 20));
			jLabePaisCampus.setText("País");
			jLabelComplementoCampus = new JLabel();
			jLabelComplementoCampus.setBounds(new Rectangle(417, 200, 80, 20));
			jLabelComplementoCampus.setText("Complemento");
			jLabelCidadeCampus = new JLabel();
			jLabelCidadeCampus.setBounds(new Rectangle(92, 232, 42, 20));
			jLabelCidadeCampus.setText("Cidade");
			jLabelNumeroCampus = new JLabel();
			jLabelNumeroCampus.setBounds(new Rectangle(84, 200, 50, 20));
			jLabelNumeroCampus.setText("Número");
			jLabelBairroCampus = new JLabel();
			jLabelBairroCampus.setBounds(new Rectangle(458, 169, 39, 20));
			jLabelBairroCampus.setText("Bairro");
			jLabelLogradouroCampus = new JLabel();
			jLabelLogradouroCampus.setBounds(new Rectangle(63, 169, 71, 20));
			jLabelLogradouroCampus.setText("Logradouro");
			jLabelTelefoneCampus = new JLabel();
			jLabelTelefoneCampus.setBounds(new Rectangle(77, 140, 55, 20));
			jLabelTelefoneCampus.setText("Telefone");
			jLabelSiglaCampus = new JLabel();
			jLabelSiglaCampus.setBounds(new Rectangle(458, 110, 40, 20));
			jLabelSiglaCampus.setText("Sigla*");
			jLabelNomeCampus = new JLabel();
			jLabelNomeCampus.setBounds(new Rectangle(93, 110, 41, 20));
			jLabelNomeCampus.setText("Nome*");
			jPanelCadastrarCampus = new JPanel();
			jPanelCadastrarCampus.setLayout(null);
			jPanelCadastrarCampus.setBounds(new Rectangle(248,194,760,508));
			jPanelCadastrarCampus.setBorder(BorderFactory.createTitledBorder(null, "Cadastro de Campus", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51)));
			jPanelCadastrarCampus.add(jLabelNomeCampus, null);
			jPanelCadastrarCampus.add(getJTextFieldNomeCampus(), null);
			jPanelCadastrarCampus.add(jLabelSiglaCampus, null);
			jPanelCadastrarCampus.add(getJTextFieldSiglaCampus(), null);
			jPanelCadastrarCampus.add(jLabelTelefoneCampus, null);
			jPanelCadastrarCampus.add(getJTextFieldLogradouroCampus(), null);
			jPanelCadastrarCampus.add(getJTextFieldBairroCampus(), null);
			jPanelCadastrarCampus.add(getJTextFieldNumeroCampus(), null);
			jPanelCadastrarCampus.add(getJTextFieldComplementoCampus(), null);
			jPanelCadastrarCampus.add(getJTextFieldCidadeCampus(), null);
			jPanelCadastrarCampus.add(getJTextFieldPaisCampus(), null);
			jPanelCadastrarCampus.add(jLabelLogradouroCampus, null);
			jPanelCadastrarCampus.add(jLabelBairroCampus, null);
			jPanelCadastrarCampus.add(jLabelNumeroCampus, null);
			jPanelCadastrarCampus.add(jLabelCidadeCampus, null);
			jPanelCadastrarCampus.add(jLabelComplementoCampus, null);
			jPanelCadastrarCampus.add(getJTelefoneFieldTelefoneCampus(), null);
			jPanelCadastrarCampus.add(getJCEPFieldCEPCampus(), null);
			jPanelCadastrarCampus.add(jLabePaisCampus, null);
			jPanelCadastrarCampus.add(getJComboBoxUFCampus(), null);
			jPanelCadastrarCampus.add(jLabelUFCampus, null);
			jPanelCadastrarCampus.add(jLabelCEPCampus, null);
			jPanelCadastrarCampus.repaint();
		}
		return jPanelCadastrarCampus;
	}

	/**
	 * This method initializes jTextFieldNomeCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldNomeCampus() {
		if (jTextFieldNomeCampus == null) {
			jTextFieldNomeCampus = new JTextField();
			jTextFieldNomeCampus.setBounds(new Rectangle(135, 110, 269, 20));
		}
		return jTextFieldNomeCampus;
	}

	/**
	 * This method initializes jTextFieldSiglaCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldSiglaCampus() {
		if (jTextFieldSiglaCampus == null) {
			jTextFieldSiglaCampus = new JTextField();
			jTextFieldSiglaCampus.setBounds(new Rectangle(500, 110, 71, 20));
		}
		return jTextFieldSiglaCampus;
	}

	/**
	 * This method initializes jTextFieldLogradouroCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldLogradouroCampus() {
		if (jTextFieldLogradouroCampus == null) {
			jTextFieldLogradouroCampus = new JTextField();
			jTextFieldLogradouroCampus.setBounds(new Rectangle(135, 170, 255, 20));
		}
		return jTextFieldLogradouroCampus;
	}

	/**
	 * This method initializes jTextFieldBairroCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldBairroCampus() {
		if (jTextFieldBairroCampus == null) {
			jTextFieldBairroCampus = new JTextField();
			jTextFieldBairroCampus.setBounds(new Rectangle(500, 170, 220, 20));
		}
		return jTextFieldBairroCampus;
	}

	/**
	 * This method initializes jTextFieldNumeroCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldNumeroCampus() {
		if (jTextFieldNumeroCampus == null) {
			jTextFieldNumeroCampus = new JTextField();
			jTextFieldNumeroCampus.setBounds(new Rectangle(135, 200, 42, 20));
		}
		return jTextFieldNumeroCampus;
	}

	/**
	 * This method initializes jTextFieldComplementoCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldComplementoCampus() {
		if (jTextFieldComplementoCampus == null) {
			jTextFieldComplementoCampus = new JTextField();
			jTextFieldComplementoCampus.setBounds(new Rectangle(500, 200, 220, 20));
		}
		return jTextFieldComplementoCampus;
	}

	/**
	 * This method initializes jTextFieldCidadeCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldCidadeCampus() {
		if (jTextFieldCidadeCampus == null) {
			jTextFieldCidadeCampus = new JTextField();
			jTextFieldCidadeCampus.setBounds(new Rectangle(135, 230, 213, 20));
		}
		return jTextFieldCidadeCampus;
	}

	/**
	 * This method initializes jTextFieldPaisCampus	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	public JTextField getJTextFieldPaisCampus() {
		if (jTextFieldPaisCampus == null) {
			jTextFieldPaisCampus = new JTextField();
			jTextFieldPaisCampus.setBounds(new Rectangle(135, 260, 151, 20));
		}
		return jTextFieldPaisCampus;
	}
	
	// adiciona eventos
	public void adicionaEventosCampus()
	{
		this.getJTelefoneFieldTelefoneCampus().addKeyListener( new KeyListener() {

			public void keyPressed(KeyEvent e) {
				aplicaMascaraTelefone( getJTelefoneFieldTelefoneCampus(), e );
			}

			public void keyReleased(KeyEvent e) {}

			public void keyTyped(KeyEvent e) {}
			
		});
		this.getJCEPFieldCEPCampus().addKeyListener( new KeyListener() {

			public void keyPressed(KeyEvent e) {
				aplicaMascaraCEP( getJCEPFieldCEPCampus(), e );
			}

			public void keyReleased(KeyEvent e) {}

			public void keyTyped(KeyEvent e) {}
			
		});
		/*
		 * efeito de mão ao passar o mouse sobre o botão
		 */
		
		super.getJButtonCadastrar().addMouseListener( new MouseAdapter(){
			public void mouseEntered( MouseEvent e ) { 
				setCursor( Cursor.getPredefinedCursor( Cursor.HAND_CURSOR ) );			
			}
			public void mouseExited( MouseEvent e ) {				
				setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) );				
			}
		} );
		super.getJButtonCancelar().addMouseListener( new MouseAdapter(){
			public void mouseEntered( MouseEvent e ) { 
				setCursor( Cursor.getPredefinedCursor( Cursor.HAND_CURSOR ) );			
			}
			public void mouseExited( MouseEvent e ) {				
				setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) );				
			}
		} );
		super.getJButtonLimpar().addMouseListener( new MouseAdapter(){
			public void mouseEntered( MouseEvent e ) { 
				setCursor( Cursor.getPredefinedCursor( Cursor.HAND_CURSOR ) );			
			}
			public void mouseExited( MouseEvent e ) {				
				setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) );				
			}
		} );
		super.getJButtonVoltar().addMouseListener( new MouseAdapter(){
			public void mouseEntered( MouseEvent e ) { 
				setCursor( Cursor.getPredefinedCursor( Cursor.HAND_CURSOR ) );			
			}
			public void mouseExited( MouseEvent e ) {				
				setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) );				
			}
		} );
		super.getJButtonSair().addMouseListener( new MouseAdapter(){
			public void mouseEntered( MouseEvent e ) { 
				setCursor( Cursor.getPredefinedCursor( Cursor.HAND_CURSOR ) );			
			}
			public void mouseExited( MouseEvent e ) {				
				setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) );				
			}
		} );
	}
	
	// método que aplica as máscaras
	public void aplicaMascaraTelefone( JTextField textField, KeyEvent e )
	{
			String telefone = textField.getText();
			if( telefone.length() == 0 ) {
				textField.setText( "(" + telefone );
				
			} else if( telefone.length() == 3 ) {
				textField.setText( telefone + ")-" );
				
			} else if( telefone.length() == 9 ) {
				textField.setText( telefone + "-" );
				
			}
	}
	public void aplicaMascaraCEP( JTextField textField, KeyEvent e )
	{
			String cep = textField.getText();
			if( cep.length() == 2 ) {
				textField.setText( cep + "." );
				
			} else if( cep.length() == 6 ) {
				textField.setText( cep + "-" );
				
			}
	}
	
	/**
	 * This method initializes jTelefoneFieldTelefoneCampus	
	 * 	
	 * @return util.mascaras.JTelefoneField	
	 */
	public JTelefoneField getJTelefoneFieldTelefoneCampus() {
		if (jTelefoneFieldTelefoneCampus == null) {
			jTelefoneFieldTelefoneCampus = new JTelefoneField(14);
			jTelefoneFieldTelefoneCampus.setBounds(new Rectangle(135, 140, 92, 20));
		}
		return jTelefoneFieldTelefoneCampus;
	}

	/**
	 * This method initializes JCEPFieldCEPCampus	
	 * 	
	 * @return util.mascaras.JCEPField	
	 */
	public JCEPField getJCEPFieldCEPCampus() {
		if (JCEPFieldCEPCampus == null) {
			JCEPFieldCEPCampus = new JCEPField(10);
			JCEPFieldCEPCampus.setBounds(new Rectangle(500, 260, 70, 20));
		}
		return JCEPFieldCEPCampus;
	}

	/**
	 * This method initializes jComboBoxUFCampus	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	public JComboBox getJComboBoxUFCampus() {
		if (jComboBoxUFCampus == null) {
			jComboBoxUFCampus = new JComboBox(uf);
			jComboBoxUFCampus.setBounds(new Rectangle(500, 230, 45, 20));
		}
		return jComboBoxUFCampus;
	}
	
	// método que limpa os campos
	public void limpaCampus() {
		this.getJTextFieldNomeCampus().setText("");
		this.getJTextFieldSiglaCampus().setText("");
	    this.getJTelefoneFieldTelefoneCampus().setText("");
	    this.getJTextFieldLogradouroCampus().setText("");
	    this.getJTextFieldBairroCampus().setText("");
		this.getJTextFieldNumeroCampus().setText("");
		this.getJTextFieldComplementoCampus().setText("");
		this.getJTextFieldCidadeCampus().setText("");
		this.getJComboBoxUFCampus().getSelectedItem().toString();
		this.getJTextFieldPaisCampus().setText("");
		this.getJCEPFieldCEPCampus().setText("");
	}
}
remixlara

Nesse caso o combobox q apresenta o problema eh o jComboBoxUFCampus criado na linha 50

e o metodo getJComboBoxUFCampus na linha 373

n entendo pq esta ocorrendo este problema ;/

Criado 28 de janeiro de 2009
Ultima resposta 28 de jan. de 2009
Respostas 8
Participantes 5