Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.help > #2290 > unrolled thread

Why doesn't this jComboBox.setSelectedItem() work?

Started bykedward777@gmail.com
First post2012-11-29 12:12 -0800
Last post2012-11-30 18:52 -0800
Articles 5 — 4 participants

Back to article view | Back to comp.lang.java.help


Contents

  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

#2290 — Why doesn't this jComboBox.setSelectedItem() work?

Fromkedward777@gmail.com
Date2012-11-29 12:12 -0800
SubjectWhy 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]


#2291

FromLew <lewbloch@gmail.com>
Date2012-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]


#2299

FromJoerg Meier <joergmmeier@arcor.de>
Date2012-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]


#2305

FromRoedy Green <see_website@mindprod.com.invalid>
Date2012-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]


#2306

FromRoedy Green <see_website@mindprod.com.invalid>
Date2012-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