ola, tenho um combobox e queria capturar o valor selecionado nele, como poderia fazer isso?
o valor selecionado será enviado a um banco de dados
obrigado
ola, tenho um combobox e queria capturar o valor selecionado nele, como poderia fazer isso?
o valor selecionado será enviado a um banco de dados
obrigado
tava vendo alguma coisa assim :
String a = jComboBox1.getSelectedItem().toString();
so q nao funcionó
rafaelviny
Faz assim que funciona
String valor = (String)jTipo.getSelectedItem();
ainda nao funciona =/
rafaelviny
Desse jeito Funciona pelo que eu já fiz nas minhas aplicações.
Qual o Erro Esta aparecendo.
Olá
getSelectedIndex(); retorna o index da combo;
getSelectedItem(); retorna o item da combo;
Se tiver tendo problemas ainda. Você pode mostrar como está adicionando os item que eu tento ajudar.
At+
eu criei um componente COMBO novo assim
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
public class MeuCombo extends JComboBox {
private String sql;
public Statement st;
public ResultSet rs;
public Vector pks = new Vector();
private Vector vetor = new Vector();
public MeuCombo(String sql){
super();
this.sql = sql;
setMaximumRowCount(10);
preenche();
}
public void preenche(){
try {
//aqui colocar o codigo para preenchimento do combo e do vetor.
Connection con = Conexao.abrirConexao();
try {
st = con.createStatement();
rs = st.executeQuery(sql);
} catch (Exception e) {
}
while (rs.next()) {
addItem(rs.getString(2));
pks.addElement(rs.getInt(1));
pks.get(this.getSelectedIndex());
}
} catch (SQLException ex) {
}
}
//PreparedStatement psCombo = con.prepareStatement(sql);
public void setValue(int chave) {
// buscar no vetor o valor = chave e atribuir como item selecionado no combobox a posicao do vetor
}
public int getValue() {
return 0; //pegar o numero do item selecionado no combo, pesquisar no vetor o mesmo numero e retornar o conteudo deste.
}
}
estanciei ele assim
MeuCombo jcEstado = new MeuCombo ("select cod_estado, sigla_estado from estado order by sigla_estado");
e quero q ele capture oq for selecionado e mande os dados junto com esse outros pra tabela cidade
if (e.getSource()==jbOk){
Habilita(true);
// funçoes para inserir uma cidade no cadastro ***********
String cod_estado = (String)jcEstado.getSelectedItem();
cidade.setNome(tfNome.getText());
cidade.setObs_Cid(tfObs.getText());
cidade.inserirCidade();
esqueci de mencionar, ainda nao sei bem como fazer, mas ele vai ter q carregar todos os dados do banco no combobox e em um vetor os PKs desses dados, para o usuario selecionar o item e inserir no banco a PK
Cara é … entendi certinho o q vc quer.
Vou dar uma dica o comboBox do java num tem como vc colocar tipo chave e valor(como vc falou de pk e nome )por isso eu tenho uma classe aki que é meu comboBox.
Logo eu posto ela pra vc…
Ah uma dica enquanto isso separa as coisas .
Uma coisa é o acesso a base e retorno da coleção dos Estados por exemplo outra coisa é a instância da combo.
vlw
/**
* @author epinheiro - evandropin@gmail.com
* @author tribeiro - thiago.filadelfo@gmail.com
*
*/
public class MobileCombo extends JComboBox {
private static final long serialVersionUID = -5941046491248981373L;
private Vector<ItemCombo> vectorItemCombo;
public MobileCombo() {
vectorItemCombo = new Vector<ItemCombo>();
}
public MobileCombo(Vector<ItemCombo> vectorItemCombo) {
super(vectorItemCombo);
this.vectorItemCombo = vectorItemCombo;
}
public void addItem(ItemCombo itemCombo) {
super.addItem(itemCombo);
vectorItemCombo.add(itemCombo);
}
public String getSelectedId() {
return getSelectedItem() != null && ((ItemCombo) getSelectedItem()).getId() != null
? String.valueOf(((ItemCombo) getSelectedItem()).getId())
: null;
}
public void setSelectedId(String id) {
for (int i = 0; i < vectorItemCombo.size(); i++) {
ItemCombo itemCombo = vectorItemCombo.get(i);
if(String.valueOf(itemCombo.getId()).equals(id)) {
setSelectedIndex(i);
return;
}
}
setSelectedIndex(0);
}
public String getSelectedValue() {
return getSelectedItem() != null && ((ItemCombo) getSelectedItem()).getValue() != null
? ((ItemCombo) getSelectedItem()).getValue()
: null;
}
public void setSelectedValue(String value) {
for (int i = 0; i < vectorItemCombo.size(); i++) {
ItemCombo itemCombo = vectorItemCombo.get(i);
if(itemCombo.getValue().equals(value)) {
setSelectedIndex(i);
return;
}
}
setSelectedIndex(0);
}
public void insertItemAt(ItemCombo itemCombo, int index) {
super.insertItemAt(itemCombo, index);
}
public void removeItem(ItemCombo itemCombo) {
super.removeItem(itemCombo);
}
public Vector<ItemCombo> getItem(){
return vectorItemCombo;
}
@Override
public void removeAllItems() {
vectorItemCombo.removeAllElements();
super.removeAllItems();
}
}
este é o item
[code]
/**
@author Evandro
@author Thiago
02/10/2008
*/
public class ItemCombo {
private Integer id;
private String value;
public ItemCombo() {}
public ItemCombo(Integer id, String value) {
super();
this.id = id;
this.value = value;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}[/code]
No seu caso agora é só preparar para o retorno da classe de conexão para ser do tipo Vector e blza…
Apanhei no começo tbm para chegar neste combo. Bom at+
Opa!!
AguiaMen, boa rapaz!! Lembro quando nós ficamos fazendo “POG” para tratar
combos no Swing… agora isso fica até mais fácil para manutenção,
depois coloca no blog…
Flwssss
vlw , muito obrigado =D
agora ou entender esse codigo e fazer ele funcionar aqui
abraço
[quote=aguiaMen][code]
/**
*/
public class MobileCombo extends JComboBox {
private static final long serialVersionUID = -5941046491248981373L;
private Vector<ItemCombo> vectorItemCombo;
public MobileCombo() {
vectorItemCombo = new Vector<ItemCombo>();
}
public MobileCombo(Vector<ItemCombo> vectorItemCombo) {
super(vectorItemCombo);
this.vectorItemCombo = vectorItemCombo;
}
public void addItem(ItemCombo itemCombo) {
super.addItem(itemCombo);
vectorItemCombo.add(itemCombo);
}
public String getSelectedId() {
return getSelectedItem() != null && ((ItemCombo) getSelectedItem()).getId() != null
? String.valueOf(((ItemCombo) getSelectedItem()).getId())
: null;
}
public void setSelectedId(String id) {
for (int i = 0; i < vectorItemCombo.size(); i++) {
ItemCombo itemCombo = vectorItemCombo.get(i);
if(String.valueOf(itemCombo.getId()).equals(id)) {
setSelectedIndex(i);
return;
}
}
setSelectedIndex(0);
}
public String getSelectedValue() {
return getSelectedItem() != null && ((ItemCombo) getSelectedItem()).getValue() != null
? ((ItemCombo) getSelectedItem()).getValue()
: null;
}
public void setSelectedValue(String value) {
for (int i = 0; i < vectorItemCombo.size(); i++) {
ItemCombo itemCombo = vectorItemCombo.get(i);
if(itemCombo.getValue().equals(value)) {
setSelectedIndex(i);
return;
}
}
setSelectedIndex(0);
}
public void insertItemAt(ItemCombo itemCombo, int index) {
super.insertItemAt(itemCombo, index);
}
public void removeItem(ItemCombo itemCombo) {
super.removeItem(itemCombo);
}
public Vector<ItemCombo> getItem(){
return vectorItemCombo;
}
@Override
public void removeAllItems() {
vectorItemCombo.removeAllElements();
super.removeAllItems();
}
}
[/code]
este é o item
[code]
/**
@author Evandro - evandropin@gmail.com
@author Thiago - thiago.filadelfo@gmail.com
02/10/2008
*/
public class ItemCombo {
private Integer id;
private String value;
public ItemCombo() {}
public ItemCombo(Integer id, String value) {
super();
this.id = id;
this.value = value;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}[/code]
No seu caso agora é só preparar para o retorno da classe de conexão para ser do tipo Vector e blza…
Apanhei no começo tbm para chegar neste combo. Bom at+[/quote]
Rapaz, vc complicou muito o teu comboBox… podia fazer mais simples, mais ou menos assim…
[code]package combo;
import javax.swing.JComboBox;
public class MobileCombo extends JComboBox {
private static final long serialVersionUID = -5941046491248981322L;
public void setSelectedId(int id) {
for(int i = 0; i < getItemCount(); i++)
if(id == ((ObjetoComID)getItemAt(i)).getId())
setSelectedIndex(i);
}
public int getSelectedId() {
return ((ObjetoComID)getSelectedItem()).getId();
}
public void setSelectedValor(String valor) {
for(int i = 0; i < getItemCount(); i++)
if(valor.equals(((ObjetoComID)getItemAt(i)).getValor()))
setSelectedIndex(i);
}
public String getSelectedValor() {
return ((ObjetoComID)getSelectedItem()).getValor();
}
public ObjetoComID getObjetoComID() {
return (ObjetoComID)getSelectedItem();
}
}[/code]
Daí o objeto assim:
[code]package combo;
public class ObjetoComID implements java.io.Serializable {
private static final long serialVersionUID = 2502964297481251448L;
private int id = 0;
private String valor;
public ObjetoComID() {
super();
}
public ObjetoComID(int id, String valor) {
this();
setId(id);
setValor(valor);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getValor() {
return valor;
}
public void setValor(String valor) {
this.valor = valor;
}
}[/code]