JCombo Box

Hi..

I am doing a small GUI application a movie ticket vending machine..

I have this combo box...Inside the combo box are 3 Movie titles..

I want my program to trigger when a user selects a movie my program should display an image...

I have settle how to display the image...

But im not sure how to trigger...Look through the API and found fireItemStateChanged,Itemlistener....

Could you help me on how to use these two.. When there is a change in state and action should occcr..

Thanks
segar123Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
zzynxConnect With a Mentor Software engineerCommented:
In my code

new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
          System.out.println("the following item is selected: " + yourComboBox.getSelectedItem() );
     }
}

is an "unamed" action listener. It is certainly not the one used by your button.
0
 
zzynxSoftware engineerCommented:
yourComboBox.addActionListener( new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
          System.out.println("the following item is selected: " + yourComboBox.getSelectedItem() );
     }
});
0
 
TimYatesCommented:
Look inside the directory:

    demo/jfc/SwingSet2

that comes with the JDK...  The JComboBox example does exactly that (and the source code is in:

    demo/jfc/SwingSet2/src/ComboBoxDemo.java

Tim
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
Giant2Commented:
Here you can find some example code about the Image (load, display, etc.)
http://www.javaalmanac.com/cgi-bin/search/find.pl?words=image

Hope this help you.
Bye, Giant.
0
 
segar123Author Commented:
How about the ItemState Changed...What if the user changes option..How to trigger that..

Thanks
0
 
TimYatesCommented:
yourComboBox.addItemListener( new ItemListener()
                                                       {
                                                           public void itemStateChanged( ItemEvent e )
                                                           {
                                                               If( e.getStateChange() ==  ItemEvent.SELECTED )
                                                               {
                                                                   System.out.println( e.getItem() + " has been selected" ) ;
                                                               }
                                                           }
                                                       }
0
 
zzynxSoftware engineerCommented:
>> What if the user changes option
You mean if the user selects another item in the combo box?
That's exactly what the actionlistener takes care of. Just try it.
0
 
zzynxSoftware engineerCommented:
Tim, why should you use an item listener (listening for ItemEvent.SELECTED) instead of an actionListener?
0
 
TimYatesCommented:
>  Tim, why should you use an item listener (listening for ItemEvent.SELECTED) instead of an actionListener?

No reason...  But he did ask :-)
0
 
zzynxSoftware engineerCommented:
:°D
0
 
segar123Author Commented:
Guys you are confusing me now...???

Who is Right??
0
 
TimYatesCommented:
zzynx

:-)
0
 
zzynxSoftware engineerCommented:
Did you try the code of my first comment?
0
 
segar123Author Commented:
Would like to confirm this..Since i got an action listener for my button too..
So is it ok to have 2 action listneners??any problems..
0
 
segar123Author Commented:
zzynx your first code doesnt work..i get an error saying cannot resolve symbol at the

System.out.println("the following item is selected: " + yourComboBox.getSelectedItem() );
0
 
zzynxSoftware engineerCommented:
you have to replace "yourComboBox" with the name of your combo box
;°)

>> So is it ok to have 2 action listneners?
As much as you need
0
 
segar123Author Commented:
ok..Thanks a lot..Its working...

I finish my program and comment if it works...
0
 
zzynxSoftware engineerCommented:
You could create an apart class for it too:

MyListener.java :
----------------------
import java.awt.event.*;
import javax.swing.*;

public class MyListener implements ActionListener {

   public MyListener() {
   }

   public void actionPerformed(ActionEvent evt) {
       System.out.println("the following item is selected: " + ((JComboBox)evt.getSource()).getSelectedItem() );
   }
}

Then you could write:

    yourComboBox.addActionListener( new MyListener() );

with "yourComboBox" being the name of your JComboBox variable
0
 
segar123Author Commented:
Guys here i my codes to make my pic change where the combobox is clicked...but there seems to be no change??

selectTitleList.addActionListener( new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
     
         String pic = selectTitleList.getSelectedItem() + ".jpg";
        displayTextPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 1));
        imageLabel1 = new JLabel(new ImageIcon(pic));
        displayTextPanel.add(imageLabel1);
        bookingDisplayArea = new JTextArea(12,50);
        displayTextPanel.add(bookingDisplayArea);      
                                                     
        }
});

my String pic..is the name of my jpg...

Please help...
0
 
Giant2Commented:
you are not repainting the zone where you paint the image.
displayTextPanel.paintAll(); //or repaint();
0
 
zzynxSoftware engineerCommented:
Better close this one and post another Q for that.
0
 
zzynxSoftware engineerCommented:
>> you are not repainting the zone where you paint the image

displayTextPanel.revalidate();
displayTextPanel.repaint();

should do the job.
0
 
segar123Author Commented:
Cant work..My picture doesnt change...If i change options..
0
 
Giant2Commented:
zzynx, as I told before.


segar123,
try to insert a System.out.println(pic); after
String pic = selectTitleList.getSelectedItem() + ".jpg";

In this manner you are shure you are passing from this piece of code.
0
 
segar123Author Commented:
I have inserted the printlin...

When i choose a option...It prints correctly the name of the jpeg...

But my image does not change...
0
 
segar123Author Commented:
Anyone there???
0
 
Giant2Commented:
displayTextPanel is visible in your Frame, Dialog, Panel (or someother Container)?
0
 
TimYatesCommented:
you could do with asking another question for this... 40 points for 2 questions is a little unfair :-(
0
 
zzynxSoftware engineerCommented:
Exactly.
But in the meantime he did post another Q for the image problem.
Just don't know why this Q stays open.
0
 
TimYatesCommented:
Ahhhh....I haven't got round to looking at other Qs yet...just clearing my mail ;-)

hehehe
0
 
zzynxSoftware engineerCommented:
Thanks for accepting.

P.S.
Why a B-grade?
What information do you want me to have given you to deserve an A-grade?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.