Bom dia.
Ontem fiz um tópico de como recuperar o ID de um objeto dentro do JcomboBox. Consegui graças a ajuda de voces.
Porem desde ontem a noite estou tentando fazer o seguinte procedimento.
Ao clicar na linha da jtable, ele vai voltar para o Formulário o O Item do jComboBox , quantidade e etc.
Quantidade estou conseguindo voltar, porem o item do jcombobox não.
Vou passar as classes abaixo.
MODELO DO COMBOBOX
/// ############################################################################
//// JCOMBOBOX
//// ############################################################################
private void populacombo() {
JbAlimentos.removeAllItems();
ControleAlimentos controlee = new ControleAlimentos();
controlee.listarTodos();
List<AlimentosPojo> itenss = controlee.listarTodos();
JbAlimentos.setModel(new DefaultComboBoxModel(itenss.toArray()));
List<AlimentosPojo> arlalAlimentos = ItemdaoA.ConsultaAlimentacao(pojo);
JComboBox comboboxItensAlimentos = new JComboBox(new DefaultComboBoxModel(arlalAlimentos.toArray()));
}
public class ControleAlimentos {
public List listarTodos() {
ItemAlimentacaoDao dao = new ItemAlimentacaoDao();
try {
return dao.ConsultaAlimentacao(pojo);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
return null;
}
}
EVENTO AO CLICAR NA TABELA.
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount() == 1) {
Object obj = (jTable1.getValueAt(jTable1.getSelectedRow(), 0)); //coluna 0
String Id = obj.toString();
Object obj1 = (jTable1.getValueAt(jTable1.getSelectedRow(), 1)); //coluna 1
String codali = obj1.toString();
Object obj2 = (jTable1.getValueAt(jTable1.getSelectedRow(), 2)); //coluna 2
String nomeali = obj2.toString();
Object obj3 = (jTable1.getValueAt(jTable1.getSelectedRow(), 3)); //coluna 3
String quant = obj3.toString();
JbAlimentos.setSelectedItem(nomeali); //RECEBE O NOME DO ALIMENTO PARA LOCALIZAR NO JCOMBOBOX
Quant_Alimentos.setText(quant);
//
// System.out.println(nomeali);
}
}
Sempre fiz dessa forma para retornar no combo, porem não era feita dessa forma o modelo do combobox
alguem pode me ajudar ?
tente fazer o seguinte
JbAlimentos.setEditable(true);
JbAlimentos.setSelectedItem(nomeali);
JbAlimentos.setEditable(false);
[quote=carlosdesa]Bom dia.
Ontem fiz um tópico de como recuperar o ID de um objeto dentro do JcomboBox. Consegui graças a ajuda de voces.
Porem desde ontem a noite estou tentando fazer o seguinte procedimento.
Ao clicar na linha da jtable, ele vai voltar para o Formulário o O Item do jComboBox , quantidade e etc.
Quantidade estou conseguindo voltar, porem o item do jcombobox não.
Vou passar as classes abaixo.
MODELO DO COMBOBOX
/// ############################################################################
//// JCOMBOBOX
//// ############################################################################
private void populacombo() {
JbAlimentos.removeAllItems();
ControleAlimentos controlee = new ControleAlimentos();
controlee.listarTodos();
List<AlimentosPojo> itenss = controlee.listarTodos();
JbAlimentos.setModel(new DefaultComboBoxModel(itenss.toArray()));
List<AlimentosPojo> arlalAlimentos = ItemdaoA.ConsultaAlimentacao(pojo);
JComboBox comboboxItensAlimentos = new JComboBox(new DefaultComboBoxModel(arlalAlimentos.toArray()));
}
public class ControleAlimentos {
public List listarTodos() {
ItemAlimentacaoDao dao = new ItemAlimentacaoDao();
try {
return dao.ConsultaAlimentacao(pojo);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
return null;
}
}
EVENTO AO CLICAR NA TABELA.
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount() == 1) {
Object obj = (jTable1.getValueAt(jTable1.getSelectedRow(), 0)); //coluna 0
String Id = obj.toString();
Object obj1 = (jTable1.getValueAt(jTable1.getSelectedRow(), 1)); //coluna 1
String codali = obj1.toString();
Object obj2 = (jTable1.getValueAt(jTable1.getSelectedRow(), 2)); //coluna 2
String nomeali = obj2.toString();
Object obj3 = (jTable1.getValueAt(jTable1.getSelectedRow(), 3)); //coluna 3
String quant = obj3.toString();
JbAlimentos.setSelectedItem(nomeali); //RECEBE O NOME DO ALIMENTO PARA LOCALIZAR NO JCOMBOBOX
Quant_Alimentos.setText(quant);
//
// System.out.println(nomeali);
}
}
Sempre fiz dessa forma para retornar no combo, porem não era feita dessa forma o modelo do combobox
alguem pode me ajudar ?[/quote]
Opa, Bom dia.
Deu certo, porem não intendi o motivo. Ele estava bloqueado ?
[quote=carlosdesa]Opa, Bom dia.
Deu certo, porem não intendi o motivo. Ele estava bloqueado ?[/quote]
O setEditable estava bloquiando a edição do campo.
Alguns confundem setEditable com setEnable. Enable habilita ou não voce utilizar determinado componente. O editable nao permite ser editado.
Por exemplo, se voce setar como enable um textfield, voce nao consegue clicar nele e editar, porém, consegue setar um valor assim textfield1.setText(“Valor aqui”);
Agora, se voce setar o editable como false, voce impossibilitou ele de ser editado. Setar como false essa opção, também não será possivel clicar no campo.
Abraços
Up!
[quote=Gleidson Henrique][quote=carlosdesa]Opa, Bom dia.
Deu certo, porem não intendi o motivo. Ele estava bloqueado ?[/quote]
O setEditable estava bloquiando a edição do campo.
Alguns confundem setEditable com setEnable. Enable habilita ou não voce utilizar determinado componente. O editable nao permite ser editado.
Por exemplo, se voce setar como enable um textfield, voce nao consegue clicar nele e editar, porém, consegue setar um valor assim textfield1.setText(“Valor aqui”);
Agora, se voce setar o editable como false, voce impossibilitou ele de ser editado. Setar como false essa opção, também não será possivel clicar no campo.
Abraços[/quote]
Boa Noite, agora está dando esse erro.
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to Alimentacao.Tela.Alimentacao
at Lotes.Tela.CadastroLotes.JbAlimentosItemStateChanged(CadastroLotes.java:356)
at Lotes.Tela.CadastroLotes.access$500(CadastroLotes.java:20)
at Lotes.Tela.CadastroLotes$6.itemStateChanged(CadastroLotes.java:154)
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1225)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1282)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1329)
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118)
at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:94)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:578)
at Lotes.Tela.CadastroLotes.jTable1MouseClicked(CadastroLotes.java:342)
at Lotes.Tela.CadastroLotes.access$600(CadastroLotes.java:20)
at Lotes.Tela.CadastroLotes$7.mouseClicked(CadastroLotes.java:228)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6507)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
SEGUE O EVENTO
private void JbAlimentosItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {
Alimentacao tipo = (Alimentacao) JbAlimentos.getSelectedItem();
setId(tipo.getIdalimentacao());
Cod_alimentacao.setText(String.valueOf(getId()));
}
}
Ele da erro ao clicar na tabela. alguem pode me ajudar ?
obrigado.
Bom dia, minhas ultimas esperanças são vocês, já pesquisei um monte na internet e pedi para meu professor, até agora nada.
Se alguém me ajudar eu agradeço muito.