Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.help > #2290 > unrolled thread
| Started by | kedward777@gmail.com |
|---|---|
| First post | 2012-11-29 12:12 -0800 |
| Last post | 2012-11-30 18:52 -0800 |
| Articles | 5 — 4 participants |
Back to article view | Back to comp.lang.java.help
Why doesn't this jComboBox.setSelectedItem() work? kedward777@gmail.com - 2012-11-29 12:12 -0800
Re: Why doesn't this jComboBox.setSelectedItem() work? Lew <lewbloch@gmail.com> - 2012-11-29 12:20 -0800
Re: Why doesn't this jComboBox.setSelectedItem() work? Joerg Meier <joergmmeier@arcor.de> - 2012-11-30 11:33 +0100
Re: Why doesn't this jComboBox.setSelectedItem() work? Roedy Green <see_website@mindprod.com.invalid> - 2012-11-30 18:16 -0800
Re: Why doesn't this jComboBox.setSelectedItem() work? Roedy Green <see_website@mindprod.com.invalid> - 2012-11-30 18:52 -0800
| From | kedward777@gmail.com |
|---|---|
| Date | 2012-11-29 12:12 -0800 |
| Subject | Why doesn't this jComboBox.setSelectedItem() work? |
| Message-ID | <b982c4c9-894e-413a-8988-43c7a0ed2168@googlegroups.com> |
Hello, The problem I have is this: I add a list of items to my jcombobox, I then setSelectedItem to one of the items, BUT the combox box always goes to the first item. It seems to ignore the item I am saying to set as the selected item.
THIS DOESN'T WORK:
Vector model = new Vector();
Employee myItem = new Employee(1118,"me8");
model.addElement(new Employee(1112, "me2" ));
model.addElement(new Employee(1113, "me3" ));
model.addElement(new Employee(1114, "me4" ));
model.addElement(myItem);
model.addElement(new Employee(1115, "me5" ));
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model));
Employee myItem2 = new Employee(1118,"me8");
jComboBox1.setSelectedItem(myItem2);
THIS DOES WORK:
Vector model = new Vector();
Employee myItem = new Employee(1118,"me8");
model.addElement(new Employee(1112, "me2" ));
model.addElement(new Employee(1113, "me3" ));
model.addElement(new Employee(1114, "me4" ));
model.addElement(myItem);
model.addElement(new Employee(1115, "me5" ));
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model));
jComboBox1.setSelectedItem(myItem);
[toc] | [next] | [standalone]
| From | Lew <lewbloch@gmail.com> |
|---|---|
| Date | 2012-11-29 12:20 -0800 |
| Message-ID | <5979dba4-d793-44f0-b514-88843e72b951@googlegroups.com> |
| In reply to | #2290 |
kedwa...@gmail.com wrote: > I add a list of items to my jcombobox, I then setSelectedItem to one of the items, BUT the combox box always goes to the first item. It seems to ignore the item I am saying to set as the selected item. > > THIS DOESN'T WORK: > Vector model = new Vector(); Don't use raw types! > Employee myItem = new Employee(1118,"me8"); > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > Employee myItem2 = new Employee(1118,"me8"); > jComboBox1.setSelectedItem(myItem2); > > THIS DOES WORK: > > Vector model = new Vector(); > Employee myItem = new Employee(1118,"me8"); > > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > jComboBox1.setSelectedItem(myItem); What's the implementation of 'Employee#equals()'? -- Lew
[toc] | [prev] | [next] | [standalone]
| From | Joerg Meier <joergmmeier@arcor.de> |
|---|---|
| Date | 2012-11-30 11:33 +0100 |
| Message-ID | <1v5k7g4dotfeu.1kidlz7bqdtns.dlg@40tude.net> |
| In reply to | #2290 |
On Thu, 29 Nov 2012 12:12:03 -0800 (PST), kedward777@gmail.com wrote: > THIS DOESN'T WORK: > Vector model = new Vector(); > Employee myItem = new Employee(1118,"me8"); > > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > Employee myItem2 = new Employee(1118,"me8"); > jComboBox1.setSelectedItem(myItem2); At no point is myItem2 added to the JComboBox, so of course that doesn't work. While you add myItem earlier, which has the same data (1118 and me8), you explicitly declare myItem2 as a NEW Employee, and then never add it to the JComboBox. Liebe Gruesse, Joerg -- Ich lese meine Emails nicht, replies to Email bleiben also leider ungelesen.
[toc] | [prev] | [next] | [standalone]
| From | Roedy Green <see_website@mindprod.com.invalid> |
|---|---|
| Date | 2012-11-30 18:16 -0800 |
| Message-ID | <o2qib8hgln0oa0ccck5srvsa0o0319278l@4ax.com> |
| In reply to | #2290 |
On Thu, 29 Nov 2012 12:12:03 -0800 (PST), kedward777@gmail.com wrote, quoted or indirectly quoted someone who said : >Hello, The problem I have is this: I add a list of items to my jcombobox, I then setSelectedItem to one of the items, BUT the combox box always goes to the first item. It seems to ignore the item I am saying to set as the selected item. > >THIS DOESN'T WORK: > Vector model = new Vector(); > Employee myItem = new Employee(1118,"me8"); > > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > Employee myItem2 = new Employee(1118,"me8"); > jComboBox1.setSelectedItem(myItem2); > > >THIS DOES WORK: > Vector model = new Vector(); > Employee myItem = new Employee(1118,"me8"); > > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > jComboBox1.setSelectedItem(myItem); see http://mindprod.com/jgloss/jcombobox.html for sample code. There are three ways to compare: 1. with == (in which case your two objects are not the same object) 2. with default equals ( which if you have not defined Employee.equals defaults to == ) 3. with custom Employee.equals (which you have to write) setSelected Item compares against defined items with. .equals, not ==. I usually do this with enums. Then your problem does not come up. The possibilities are unique objects, even if created with valueOf. -- Roedy Green Canadian Mind Products http://mindprod.com Students who hire or con others to do their homework are as foolish as couch potatoes who hire others to go to the gym for them.
[toc] | [prev] | [next] | [standalone]
| From | Roedy Green <see_website@mindprod.com.invalid> |
|---|---|
| Date | 2012-11-30 18:52 -0800 |
| Message-ID | <a7sib8l4khbpuv131kav04hspmbu0aquoo@4ax.com> |
| In reply to | #2290 |
On Thu, 29 Nov 2012 12:12:03 -0800 (PST), kedward777@gmail.com wrote, quoted or indirectly quoted someone who said : >Hello, The problem I have is this: I add a list of items to my jcombobox, I then setSelectedItem to one of the items, BUT the combox box always goes to the first item. It seems to ignore the item I am saying to set as the selected item. > >THIS DOESN'T WORK: > Vector model = new Vector(); > Employee myItem = new Employee(1118,"me8"); > > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > Employee myItem2 = new Employee(1118,"me8"); > jComboBox1.setSelectedItem(myItem2); > > >THIS DOES WORK: > Vector model = new Vector(); > Employee myItem = new Employee(1118,"me8"); > > model.addElement(new Employee(1112, "me2" )); > model.addElement(new Employee(1113, "me3" )); > model.addElement(new Employee(1114, "me4" )); > model.addElement(myItem); > model.addElement(new Employee(1115, "me5" )); > > jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(model)); > > jComboBox1.setSelectedItem(myItem); see http://mindprod.com/jgloss/jcombobox.html for sample code. There are three ways to compare: 1. with == (in which case your two objects are not the same object) 2. with default equals ( which if you have not defined Employee.equals defaults to == ) 3. with custom Employee.equals (which you have to write) setSelected Item compares against defined items with. .equals, not ==. I usually do this with enums. Then your problem does not come up. The possibilities are unique objects, even if created with valueOf. -- Roedy Green Canadian Mind Products http://mindprod.com Students who hire or con others to do their homework are as foolish as couch potatoes who hire others to go to the gym for them.
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.java.help
csiph-web