Ir ao conteúdo
  • Cadastre-se

Como validar uma String com um dado do JComboBox


Posts recomendados

Bom galera segue a imagem focando a parte que estou travado no código, gostaria de saber como faço pra validar se um diretório que vou adicionar, ja existe no JComboBox?

 

JButton btnAddDiretorio = new JButton("Adicionar diretório");
		btnAddDiretorio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				String novoDiretorio = campoNovoDiretorio.getText();

				JComboBox campoDiretorio = SingletonComboDiretorio.getInstance();
				campoDiretorio.addItem(novoDiretorio);

				if (novoDiretorio.isEmpty())
					throw new RuntimeException();
				else if (novoDiretorio.equals(campoDiretorio)) //Problema aqui
					JOptionPane.showMessageDialog(null, "Diretório ja existe, adicione outro!");
				else
					JOptionPane.showMessageDialog(null, "Diretório adicionado à lista:\n " + novoDiretorio, "Mensagem",
							1);
				dispose();

 

Link para o comentário
Compartilhar em outros sites

você tem que comparar o valor, e não o objeto .. assim:

JButton btnAddDiretorio = new JButton("Adicionar diretório");
btnAddDiretorio.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent arg0) {
    String novoDiretorio = campoNovoDiretorio.getText();
    JComboBox campoDiretorio = SingletonComboDiretorio.getInstance();
    campoDiretorio.addItem(novoDiretorio);
    if (novoDiretorio.isEmpty()) {
      throw new RuntimeException();
    } else if (novoDiretorio.equals((String) campoDiretorio.getSelectedItem()) {
      JOptionPane.showMessageDialog(null, "Diretório ja existe, adicione outro!");
    } else {
      JOptionPane.showMessageDialog(null, "Diretório adicionado à lista:\n " + novoDiretorio, "Mensagem", 1);
    }
  	dispose();
  }
}

 

Link para o comentário
Compartilhar em outros sites

Fiz de uma outra forma usando DefaultComboBoxModel...

 

JButton btnAddDiretorio = new JButton("Adicionar diretório");
		btnAddDiretorio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				String novoDiretorio = campoNovoDiretorio.getText();

				JComboBox campoDiretorio = SingletonComboDiretorio.getInstance();
				DefaultComboBoxModel model = (DefaultComboBoxModel) campoDiretorio.getModel();

				if (novoDiretorio.isEmpty()) {
					JOptionPane.showMessageDialog(null, "Nome em branco é invalido, insira um nome!");
					throw new IllegalArgumentException();

				} else if (model.getIndexOf(novoDiretorio) != -1) {//model.getIndexOf(campoDiretorio) != -1) {
					/*
					 * getIndexOf(Object anItem) retorna o indice de um elemento
					 * caso ele exista no model do JComboBox, e -1 se ele não
					 * foi localizado.
					 */
					JOptionPane.showMessageDialog(null, "Diretório ja existe, adicione outro!");
					throw new IllegalArgumentException();

				} else {
					campoDiretorio.addItem(novoDiretorio);
					JOptionPane.showMessageDialog(null, "Diretório adicionado à lista:\n " + novoDiretorio, "Mensagem",
							1);
				}
				dispose();
			}
		});
		btnAddDiretorio.setBounds(143, 83, 264, 25);
		janelaDiretorio.add(btnAddDiretorio);

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...