Solved

JCombo Box

Posted on 2004-09-01
31
190 Views
Last Modified: 2010-03-31
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
0
Comment
Question by:segar123
  • 12
  • 9
  • 6
  • +1
31 Comments
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
yourComboBox.addActionListener( new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
          System.out.println("the following item is selected: " + yourComboBox.getSelectedItem() );
     }
});
0
 
LVL 35

Expert Comment

by:TimYates
Comment Utility
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
 
LVL 12

Expert Comment

by:Giant2
Comment Utility
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
 

Author Comment

by:segar123
Comment Utility
How about the ItemState Changed...What if the user changes option..How to trigger that..

Thanks
0
 
LVL 35

Expert Comment

by:TimYates
Comment Utility
yourComboBox.addItemListener( new ItemListener()
                                                       {
                                                           public void itemStateChanged( ItemEvent e )
                                                           {
                                                               If( e.getStateChange() ==  ItemEvent.SELECTED )
                                                               {
                                                                   System.out.println( e.getItem() + " has been selected" ) ;
                                                               }
                                                           }
                                                       }
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> 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
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Tim, why should you use an item listener (listening for ItemEvent.SELECTED) instead of an actionListener?
0
 
LVL 35

Expert Comment

by:TimYates
Comment Utility
>  Tim, why should you use an item listener (listening for ItemEvent.SELECTED) instead of an actionListener?

No reason...  But he did ask :-)
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
:°D
0
 

Author Comment

by:segar123
Comment Utility
Guys you are confusing me now...???

Who is Right??
0
 
LVL 35

Expert Comment

by:TimYates
Comment Utility
zzynx

:-)
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Did you try the code of my first comment?
0
 

Author Comment

by:segar123
Comment Utility
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
 

Author Comment

by:segar123
Comment Utility
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
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
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
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 37

Accepted Solution

by:
zzynx earned 40 total points
Comment Utility
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
 

Author Comment

by:segar123
Comment Utility
ok..Thanks a lot..Its working...

I finish my program and comment if it works...
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
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
 

Author Comment

by:segar123
Comment Utility
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
 
LVL 12

Expert Comment

by:Giant2
Comment Utility
you are not repainting the zone where you paint the image.
displayTextPanel.paintAll(); //or repaint();
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Better close this one and post another Q for that.
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> you are not repainting the zone where you paint the image

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

should do the job.
0
 

Author Comment

by:segar123
Comment Utility
Cant work..My picture doesnt change...If i change options..
0
 
LVL 12

Expert Comment

by:Giant2
Comment Utility
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
 

Author Comment

by:segar123
Comment Utility
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
 

Author Comment

by:segar123
Comment Utility
Anyone there???
0
 
LVL 12

Expert Comment

by:Giant2
Comment Utility
displayTextPanel is visible in your Frame, Dialog, Panel (or someother Container)?
0
 
LVL 35

Expert Comment

by:TimYates
Comment Utility
you could do with asking another question for this... 40 points for 2 questions is a little unfair :-(
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Exactly.
But in the meantime he did post another Q for the image problem.
Just don't know why this Q stays open.
0
 
LVL 35

Expert Comment

by:TimYates
Comment Utility
Ahhhh....I haven't got round to looking at other Qs yet...just clearing my mail ;-)

hehehe
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
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

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Suggested Solutions

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now