Link to home
Start Free TrialLog in
Avatar of segar123
segar123

asked on

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
Avatar of zzynx
zzynx
Flag of Belgium image

yourComboBox.addActionListener( new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
          System.out.println("the following item is selected: " + yourComboBox.getSelectedItem() );
     }
});
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
Avatar of Giant2
Giant2

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.
Avatar of segar123

ASKER

How about the ItemState Changed...What if the user changes option..How to trigger that..

Thanks
yourComboBox.addItemListener( new ItemListener()
                                                       {
                                                           public void itemStateChanged( ItemEvent e )
                                                           {
                                                               If( e.getStateChange() ==  ItemEvent.SELECTED )
                                                               {
                                                                   System.out.println( e.getItem() + " has been selected" ) ;
                                                               }
                                                           }
                                                       }
>> 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.
Tim, why should you use an item listener (listening for ItemEvent.SELECTED) instead of an actionListener?
>  Tim, why should you use an item listener (listening for ItemEvent.SELECTED) instead of an actionListener?

No reason...  But he did ask :-)
:°D
Guys you are confusing me now...???

Who is Right??
zzynx

:-)
Did you try the code of my first comment?
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..
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() );
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
ASKER CERTIFIED SOLUTION
Avatar of zzynx
zzynx
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ok..Thanks a lot..Its working...

I finish my program and comment if it works...
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
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...
you are not repainting the zone where you paint the image.
displayTextPanel.paintAll(); //or repaint();
Better close this one and post another Q for that.
>> you are not repainting the zone where you paint the image

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

should do the job.
Cant work..My picture doesnt change...If i change options..
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.
I have inserted the printlin...

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

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

hehehe
Thanks for accepting.

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