Parametros [ RESOLVIDO]

42 respostas
M

Fala Galera Beleza??

Espero que sim.

Tentarei ser breve na minha ultima duvida referente a esse projeto.

Bom Estava com muitas duvidas mas o pessoal que tem força de vontade de ensinar e tal me ajudou e Muito.

Porém ainda falta algo

Tenho MENU CADASTRO DE MUNICIPIOS

Nela eu apenas cadastrei os Municipios DE SP E RS.

RS --> CANOAS
SP --> Suzano

Beleza até ai funcionando

Sendo assim… Agora tenho meu MENU BAIRRO.
No bairro montei uma logica. na classe

BairroEscolherUFaction

que ao Selecionar uma UF na COMBOBOXUF

mostrará o resultado do municipio cadastrado na COMBOBOXmUNICIPIO

Sendo assim até ai bleza tudo funcionando.

PORÉM A DUVIDA.

Ná hora de gravar o registro está alternando…

Se eu quiser salvar por exempo Primeiro a UF de SP NO BAIRRO DE SP
Ao invés de Salvar em SP

Salva em RS.

Ou seja Não tem um parametro.

Preciso saber como fazer para salvar aonde preciso.

acredito que a causa disso seja meu While. meu loop no caso.

Postando A CLASSE.

caso alguem saiba Obrigado.


classe

// Evento que da ação a combobox UF
	@Override
	public void actionPerformed(ActionEvent euf) {
		UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();
		Integer municipio = (Integer) view.getMunicipioJComboBox()
				.getSelectedIndex();

		try {

			if (uf.isSelecionado()) {
				CarregaObjetosnacombo(uf);

			} else if (view.getMunicipioJComboBox().getSelectedIndex() != 1) {
				view.CarregaBairro(municipio);

			}

		} catch (BairroException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(view, "erro1");
		} catch (DataBaseException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(view, "erro2");
		} catch (Exception e) {
			e.printStackTrace();

		}

	}

	// metodo responsavel por carregar operacoes no evento Action performed da
	// combobox

	public void CarregaObjetosnacombo(UFVO uf) throws BairroException,
			DataBaseException {
		List<Bairro> listBairros = new ArrayList<Bairro>();
		ResultSet rs = null;
		PreparedStatement query = null;
		Connection connection = null;
		String sql = null;
		Bairro domain = null;

		try {

			connection = DataSource.getConnection();

			sql = "SELECT  nm_municipio  FROM municipio " + "WHERE id_uf = ?";
			System.out.println(sql);

			try {

				// Municipio domain2 = new Municipio();

				query = connection.prepareStatement(sql);

				query.setString(1, uf.toString());

				rs = query.executeQuery();

				if (view.getUfJComboBox().getSelectedItem() != null) {
					rs.equals(domain);
					rs.next();

					domain = new Bairro();
					domain.setMunicipio(new Municipio());
					// domain.getMunicipio().setId(rs.getInt("id_municipio"));
					domain.getMunicipio().setNome(rs.getString("nm_municipio"));
					domain.getMunicipio().setUF(uf);

					// view.getMunicipioJComboBox().setSelectedIndex(rs.getInt("id_municipio"));

					view.getMunicipioJComboBox().addItem(
							rs.getString("nm_municipio"));

					listBairros.add(domain);

				} else {
					rs.first();
				}

				if (view.getMunicipioJComboBox().getSelectedItem() != null) {
					rs.next();

				}

			} catch (Exception cause) {
				cause.printStackTrace();
				JOptionPane.showMessageDialog(view,
						" Não foi possivel carregar " + cause);

			}

		} catch (Exception cause) {
			cause.printStackTrace();
			JOptionPane
					.showMessageDialog(view, "Não foi possivel fazer Select");

		} finally {

			DataSource.close(connection);
		}

	}

	public void limpaUF() {
		final DefaultTableModel model;

		model = (DefaultTableModel) view.getBairrosJTable().getModel();

		model.getDataVector().clear();

		view.getBairrosJTable().updateUI();

	}

42 Respostas

M

Ao invés de usar o getSelectedIndex, mude para getSelectedItem e manda mostrar o que esta selecionando, creio eu que você usando o getSelectedIndex você deve estar em algum lugar definindo valores a ele e com o getSelectedItem não seleciona a posição e sim o item selecionado.
Teoricamente dizendo não muda nada… massss… quem sabe não resolve.

M
Eu coloco o index  para informar que  id_municipio é do tipo int .
S
markIron:
Eu coloco o index  para informar que  id_municipio é do tipo int .

O getSelectedIndex() até aonde eu sei (não trabalho com Swing) retorna apenas a posição que está selecionada no combo box.

Se você tiver algo como:

Acre
Distrito Federal
São Paulo
Rio de Janeiro

e selecionar Distrito Federal ele vai retornar 1 pois Distrito Federal está na posição 1 do ComboBox (vai de 0 a n-1 onde n é a quantidade de elementos no ComboBox).

M
Entendi.. porém 

Se eu colocar selectedItem..

da um erro e não deixa salvar
S
markIron:
Entendi.. porém 

Se eu colocar selectedItem..

da um erro e não deixa salvar

Eu presumo que você tenha uma classe Município e essa classe possui um campo chamado código (ou algo próximo disso) com um getter.

Você provavelmente tem um combobox de municípios (pelo o que eu entendi) e nesse combobox você o populou com objetos do tipo Municipio.

Municipio municipio = (Municipio) view.getMunicipioJComboBox()  
                .getSelectedItem();
Integer intMunicipio = municipio.getCodigo();
Integer municipio = view.getMunicipioJComboBox().getSelectedItem().
M
Cara  é mais ou menos isso mesmo

porém quando vc falou isso eu reparei 

o erro está na ação do botão

BairroOkaction que está com os codigos assim




public void actionPerformed(ActionEvent e) {

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			String municipio2 = (String) view.getMunicipioJComboBox()
					.getSelectedItem();

			Integer municipio = (Integer) view.getMunicipioJComboBox().getSelectedItem();
			
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();

			Bairro domain;

			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			domain.setNome(NomeBairro); // seta o nome do bairro


			
			//Integer municipio = new Integer(0);
			domain.setMunicipio(new Municipio());
			domain.getMunicipio().setId(municipio);
			/**for (int i = 0; i <= view.getMunicipioJComboBox().getSelectedIndex(); i++) {
				if (view.getMunicipioJComboBox().getSelectedIndex() == 0) {
					view2.rs.next();
					view2.mostrando();
					
				}
		
				
			}*/
			
			domain.getMunicipio().setNome(municipio2);

			
			
			
			
			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);

		} catch (Exception cause) {
			cause.printStackTrace();
			JOptionPane.showMessageDialog(view, "erro ao carregar");
		}

	}

mas é bom por ai mesmo...  não sei como transformar isso em getselectedItem..
S

Você vai precisar de uma classe Municipio e popular o ComboBox com objetos desse tipo.

M
 tenho a Classe Municipio
S
markIron:
Já tenho a Classe Municipio

Você populou o combobox com objetos da classe Municipio?

E poste aqui a classe Municipio.

M
Classe Municipio

package br.com.impacta.cliente.domain.model;

import java.io.Serializable;

import br.com.impacta.cliente.domain.exception.MunicipioException;

/**
 * Classe que representa município.
 * 
 * @author FELIPE,  M.I
 * @since Novembro de 2013
 * @version 1.0
 * 
 * @see Entidade
 * @see Serializable
 * @see Comparable
 */
public class Municipio extends Entidade<Integer> implements Serializable,
		Comparable<Municipio> {

	/** serialVersionUID */
	private static final long serialVersionUID = 1855459182715802082L;

	/** Nome do município. */
	private String nome;

	/** Uf do município. */
	private UFVO uf;
	
	

	
	/** Construtor padrão. */
	public Municipio() {
		this(null);
	}

	/**
	 * Construtor informando nome e uf.
	 * 
	 * @param nome
	 *            Nome informado.
	 * @param ufvo
	 *            UF informada.
	 */
	public Municipio(String nome) {
		super();

		this.nome = nome;
		
	}

	/**
	 * Recupera o nome do município.
	 * 
	 * @return Nome
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * Configura o nome do município.
	 * 
	 * @param nome
	 *            Nome do município.
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * Recupera a uf do município.
	 * 
	 * @return UF
	 */
	public UFVO getUF() {
		return uf;
	}

	/**
	 * Configura a uf do município.
	 * 
	 * @param uf
	 *            UF do município.
	 */
	public void setUF(UFVO uf) {
		this.uf = uf;
	}

	/**
	 * Valida o nome do município.
	 * 
	 * @throws MunicipioException
	 *             Lança exception em caso de problemas com o município.
	 */
	public void validarNome() throws MunicipioException {
		// Tratar com Exception usando throws

		// Nome nulo
		if (nome == null) {
			throw new MunicipioException("Nome do município está nulo!");
		}

		// Nome vazio
		if (nome.isEmpty()) { // nome.equals("");
			throw new MunicipioException("Nome do município está vazio!");
		}

		// FIXME Validar REGEX para somente brancos!
		// Nome em branco
		if (nome.matches("^[ ]+$")) { // REGEX
			throw new MunicipioException("Nome do município está vazio!");
		}

		// FIXME Validar REGEX para inválidos!
		// TODO Nome inválido
	}

	/**
	 * Valida a uf do município.
	 * 
	 * @throws MunicipioException
	 *             Lança exception em caso de problemas com o município.
	 */
	public void validarUf() throws MunicipioException {
		// Tratar com Exception
		// UF nula
		if (uf == null) {
			throw new MunicipioException("UF do município está nula!");
		}

		// UF não selecionada
		if (uf.isNotSelecionado()) {
			throw new MunicipioException("UF do município não selecionada!");
		}
	}

	/** {@inheritDoc} */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((nome == null) ? 0 : nome.hashCode());
		result = prime * result + ((uf == null) ? 0 : uf.hashCode());
		return result;
	}

	/** {@inheritDoc} */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Municipio other = (Municipio) obj;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equalsIgnoreCase(other.nome))
			return false;
		if (uf == null) {
			if (other.uf != null)
				return false;
		} else if (!uf.equals(other.uf))
			return false;
		return true;
	}

	/** {@inheritDoc} */
	@Override
	public int compareTo(Municipio outro) {
		int comp = uf.compareTo(outro.uf);

		if (comp == 0) {
			comp = nome.compareToIgnoreCase(outro.nome);
		}

		return comp;
	}

	/** {@inheritDoc} */
	@Override
	public Object clone() throws CloneNotSupportedException {
		// throw new CloneNotSupportedException();
		Municipio domain = new Municipio();

		domain.setId(new Integer(getId()));
		domain.setNome(new String(getNome()));
		domain.setUF(getUF());

		return domain;
	}

	/** {@inheritDoc} */
	@Override
	protected void finalize() throws Throwable {
		this.nome = null;
		this.uf = null;

		super.finalize();
	}

	/** {@inheritDoc} */
	@Override
	public String toString() {
		return nome ;
	}
	
	public Object[] toArray() {
		return new Object[] { "ESCOLHA" };
	}
	
}
S

Essa classe Entidade possui algum código? Digo no sentido de haver algum identificador (como uma chave primária) e que esteja sendo herdada pela classe Município.

E você está populando o combobox com objetos do tipo Municipio?

M
Classe entidade  será a chave primaria de cada classe



package br.com.impacta.cliente.domain.model;

public abstract class Entidade<PK> {

	private PK id; // Tipo genérico.

	protected Entidade() {
		super();
	}

	public PK getId() {
		return id;
	}

	public void setId(PK id) {
		this.id = id;
	}

	public boolean isNullId() {
		return id == null;
	}

	public boolean isNotNullId() {
		return !isNullId();
	}
}
S
markIron:
Classe entidade  será a chave primaria de cada classe



package br.com.impacta.cliente.domain.model;

public abstract class Entidade<PK> {

	private PK id; // Tipo genérico.

	protected Entidade() {
		super();
	}

	public PK getId() {
		return id;
	}

	public void setId(PK id) {
		this.id = id;
	}

	public boolean isNullId() {
		return id == null;
	}

	public boolean isNotNullId() {
		return !isNullId();
	}
}

Certo e você está populando o combobox com objetos do tipo Municipio?

M
public void actionPerformed(ActionEvent e) {

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			
			Municipio municipio = (Municipio)  view.getMunicipioJComboBox().getSelectedItem();
			
			//Integer municipios  = municipio.getId();

			
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();

			Bairro domain;

			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			domain.setNome(NomeBairro); // seta o nome do bairro


			
		
			domain.setMunicipio(new Municipio());
			domain.getMunicipio().setId(municipio.getId());
			
			

			
			
			
			
			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);

		} catch (Exception cause) {
			cause.printStackTrace();
			JOptionPane.showMessageDialog(view, "erro ao carregar");
		}

	}

Com essa linha de código ja devia funcionar.. mas retorna isso

[color=red]java.lang.String cannot be cast to br.com.impacta.cliente.domain.model.Municipio
at br.com.impacta.cliente.app.action.bairro.BairroOkAction.actionPerformed(BairroOkAction.java:44)[/color]

M
Como assim Populando ??
  Tipo tem uma Classe que faz o select para a Combobox Mucipio pelo resultSet  'String'
M
Cheguei a um ponto que acho que  preciso de uma conversão de String para Integer ou ao contrario não sei .


sendo assim.. acho que  falta isso



@Override
	public void actionPerformed(ActionEvent e) {

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			
			
	Integer municipio = (Integer)  view.getMunicipioJComboBox().getSelectedItem();
	

	
	//String nomMunicipio = (String) view.getMunicipioJComboBox().getSelectedItem();
			
			
		//	Municipio municipio = (Municipio)  view.getMunicipioJComboBox().getModel().getSelectedItem();
			
			//Integer municipios  = municipio.getId();

			
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();

			Bairro domain;

			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			domain.setNome(NomeBairro); // seta o nome do bairro


			
			//Integer municipio = new Integer(0);
			domain.setMunicipio(new Municipio());
			domain.setId(municipio);
			
			//domain.getMunicipio().setId(Integer.valueOf(nomMunicipio));
			
			

			
			
			
			
			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);

		} catch (Exception cause) {
			cause.printStackTrace();
			JOptionPane.showMessageDialog(view, "erro ao carregar" + cause.getMessage() + cause.getLocalizedMessage());
		}

	}
M
Bom dei uma mechida no Codigo e consegui fazer ele salvar por parametros.

Sendo assim  ainda resta um problema ele mostra id_municipio em vez de nm_municipio


tem algum modo de sobreescrever???


está assim..


while (rs.next()) {

					DefaultComboBoxModel<Object> model = new DefaultComboBoxModel<Object>();
					view.getMunicipioJComboBox().setModel(model);

					//Municipio municipio = (Municipio) model.getSelectedItem();
					String municipios = (String) model.getSelectedItem();

				
					model.setSelectedItem(rs.getObject("id_municipio"));
					model.addElement(rs.getObject("nm_municipio"));
					//model.setSelectedItem(rs.getObject("nm_municipio"));

					domain = new Bairro();
					domain.setMunicipio(new Municipio());
					domain.getMunicipio().setNome(municipios);
					domain.getMunicipio().setId(Integer.getInteger(municipios));

					
					domain.getMunicipio().setUF(uf);

					listBairros.add(domain);

				}

			} catch (Exception cause) {
				cause.printStackTrace();
				JOptionPane.showMessageDialog(view,
						" Não foi possivel carregar " + cause);

			}

		} catch (Exception cause) {
			cause.printStackTrace();
			JOptionPane
					.showMessageDialog(view, "Não foi possivel fazer Select");

		} finally {

			DataSource.close(connection);
		}

	}
M

[color=red] For input string: “canoas”[/color]

erro

M
Bom...dei uma mechida no Codigo  e consegui fazer algumas mudanças.


sendo assim.. o problema é..

na classe Escolher uf Action...


Eu consigo salvar no Banco se somente selecionar o id_municipio na combobox.. pelo campo do Banco  ser do tipo int

porém se eu colocar vamos supor  NA COMBOBOX  -->  (1  CANOAS)

não salva e da um erro assim..



java.lang.String cannot be cast to java.lang.Integer
	at br.com.impacta.cliente.app.action.bairro.BairroOkAction.actionPerformed(BairroOkAction.java:59)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)


erro dessa classe..


BairroOkAction


	public void actionPerformed(ActionEvent e) {

		Bairro domain;

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();



			
			
			String nome = (String) view.getMunicipioJComboBox().getSelectedItem().toString();
			
			Integer municipio = (Integer) view.getMunicipioJComboBox().getSelectedItem();
			


			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			
					
			
			domain.setNome(NomeBairro); // seta o nome do bairro
			domain.setMunicipio(new Municipio());
			domain.getMunicipio().setNome(String.valueOf(municipio));

			domain.getMunicipio().setId(municipio);

			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);



como reoslver essa questa..
E
markIron:
Bom...dei uma mechida no Codigo  e consegui fazer algumas mudanças.


sendo assim.. o problema é..

na classe Escolher uf Action...


Eu consigo salvar no Banco se somente selecionar o id_municipio na combobox.. pelo campo do Banco  ser do tipo int

porém se eu colocar vamos supor  NA COMBOBOX  -->  (1  CANOAS)

não salva e da um erro assim..



java.lang.String cannot be cast to java.lang.Integer
	at br.com.impacta.cliente.app.action.bairro.BairroOkAction.actionPerformed(BairroOkAction.java:59)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)


erro dessa classe..


BairroOkAction


	public void actionPerformed(ActionEvent e) {

		Bairro domain;

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();



			
			
			String nome = (String) view.getMunicipioJComboBox().getSelectedItem().toString();
			
			Integer municipio = (Integer) view.getMunicipioJComboBox().getSelectedItem();
			


			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			
					
			
			domain.setNome(NomeBairro); // seta o nome do bairro
			domain.setMunicipio(new Municipio());
			domain.getMunicipio().setNome(String.valueOf(municipio));

			domain.getMunicipio().setId(municipio);

			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);



como reoslver essa questa..


Um parseInt não resolve, não?

M
entao.. oque esta na combobox  é uma String..
quero transformar de String para Int.. ou Integer..
que é o campo do Banco do tipo int.
E

Integer.parseInt(“STRING AQUI”);

M
vou tentar aqui.. poois so falta esse detalhe pra terminar o projeto
M

tentei e me retornou um erro…

[color=red]java.lang.NumberFormatException: For input string: CANOASat java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at br.com.impacta.cliente.app.action.bairro.BairroOkAction.actionPerformed(BairroOkAction.java:81)

[/color]

@Override
	public void actionPerformed(ActionEvent e) {

		Bairro domain;

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();

			String municipio = (String) view.getMunicipioJComboBox()
					.getSelectedItem();

			Integer id = (Integer) view.getMunicipioJComboBox()
					.getSelectedIndex();

			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			domain.setNome(NomeBairro); // seta o nome do bairro
			// domain.setMunicipio(new Municipio());

			domain.setMunicipio(new Municipio());
			domain.getMunicipio().setNome(municipio);
			domain.getMunicipio().setNome(String.valueOf(id));
			domain.getMunicipio().setId(Integer.parseInt(municipio));   >>>  Onde fiz a conversão que vc me orientou

			// domain.getMunicipio().setNome(String.valueOf(municipio));

			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);

		} catch (NumberFormatException cause) {
			cause.printStackTrace();
			JOptionPane.showMessageDialog(
					view,
					"erro ao carregar" + cause.getMessage()
							+ cause.getLocalizedMessage());
		} catch (BairroException e1) {
			e1.printStackTrace();
		} catch (Exception e1) {
			e1.printStackTrace();
		}
E

Me referia à isso:
int municipio = Integer.parseInt(view.getMunicipioJComboBox().getSelectedItem());

E
public void actionPerformed(ActionEvent e) {   
31.  
32.        Bairro domain;   
33.  
34.        try {   
35.  
36.            String NomeBairro = view.getNomeJTextField().getText();   
37.            UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();   
38.  
39.  
40.  
41.               
42.               
43.            String nome = (String) view.getMunicipioJComboBox().getSelectedItem().toString();   
44.               
45.            int municipio = Integer.parseInt(view.getMunicipioJComboBox().getSelectedItem());   
46.               
47.  
48.  
49.            if (view.getaAlterar() != null) {   
50.                domain = (Bairro) view.getaAlterar();   
51.  
52.            } else {   
53.                domain = new Bairro();   
54.            }   
55.  
56.               
57.                       
58.               
59.            domain.setNome(NomeBairro); // seta o nome do bairro   
60.            domain.setMunicipio(new Municipio());   
61.            domain.getMunicipio().setNome(nome);   
62.  
63.            domain.getMunicipio().setId(municipio);   
64.  
65.            view.getService().validar(domain); // valida   
66.            view.getService().salvar(domain); // salva   
67.            view.carrega_nome_bairro(NomeBairro, uf);

Ficaria assim

M
Entendi... mas ainda da o mesmo erro.. cara
M
Tipo ainda  da  Input for String
E

O problema é que vc tá passando a String “CANOAS”, por exemplo, e querendo transformar ela em um int. Aí ñ vai dar msm não. Isto aqui não funciona:
Integer.parseInt(“CANOAS”).
Só vai dar certo se a String na qual vc der um parseInt conter apenas elementos numéricos.
Ex.: Integer.parseInt(“1234”);

M
Mas contem elementos numéricos...pq atravez de outra classe estou passando para a combobox e setando.

atravez do resulset  e do Select.
E

Qual o retorno disso:

view.getMunicipioJComboBox().getSelectedItem()

M

ele retorna o que tem dentro da combobox.

que é uma String com numeração de acordo com oque fui setando.

M

A classe EscolherUFaction…

é a responsavel por passar os Objetos para a combobox…

e a classe BairroOkAction… onde está dando esse erro

é a responsavel por salvar no BD

E

E oq exatamente vc está passando na combobox?
Coloca a stacktrace e a linha onde dá o erro tb, por favor

M
Vamos ..

Estou passando Uma String...com a numeracao ao lado.. exemplo  1  - CANOAS

Isso está na combobox..  na classe EscolherufAction.

sendo assim...

a conveorsão que vc passou deveria ter dado certo cara.. nao sei onde to errando..
M

SELECT b.id_bairro, b.nm_bairro, m.id_municipio, m.nm_municipio FROM bairro b INNER JOIN municipio m ON(m.id_municipio = b.id_municipio) WHERE b.nm_bairro LIKE ? AND m.id_uf = ?

[color=red]java.lang.NumberFormatException: For input string: 1-CANOASat java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at br.com.impacta.cliente.app.action.bairro.BairroOkAction.actionPerformed(BairroOkAction.java:58)

at javax.swing.AbstractButton.fireActionPerfor[/color]
linha 58

			 int municipio = Integer.parseInt((String) view.getMunicipioJComboBox().getSelectedItem());
E

String splitComboBox[] = ((String)view.getMunicipioJComboBox().getSelectedItem()).split("-"); int idDoMunicipio = Integer.parseInt(splitComboBox[0]);

Faça isto, então.
Aí vc vai pegar só a parte númerica do “1-CANOAS”

M
fiz assim... e mesmo assim insiste no erro huahuahuahuaa.. 
ve se fiz certo..


	@Override
	public void actionPerformed(ActionEvent e) {

		Bairro domain;

		try {

			String NomeBairro = view.getNomeJTextField().getText();
			UFVO uf = (UFVO) view.getUfJComboBox().getSelectedItem();

			String[] splitComboBox = ((String) view.getMunicipioJComboBox()
					.getSelectedItem()).split("-");
			int idDoMunicipio = Integer.parseInt(splitComboBox[0]);

			if (view.getaAlterar() != null) {
				domain = (Bairro) view.getaAlterar();

			} else {
				domain = new Bairro();
			}

			domain.setNome(NomeBairro); // seta o nome do bairro
			domain.getMunicipio().setId(idDoMunicipio);

			view.getService().validar(domain); // valida
			view.getService().salvar(domain); // salva
			view.carrega_nome_bairro(NomeBairro, uf);
E

Agora é qual o erro e em qual linha?

M
Cara  deu certo...  Aqui


Muito Obrigado.. pela aajuda;

fico te devendo umas rodadas de cerveja
E

Heuheuheuheuheuheue.
De nada.

M
kkkkkkk... valeu mesmo.
Criado 4 de fevereiro de 2014
Ultima resposta 12 de fev. de 2014
Respostas 42
Participantes 4