Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9120525
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T05:38:49+00:00 2026-06-17T05:38:49+00:00

Im using BlueJ and I have run into problem. I have a combo box

  • 0

Im using BlueJ and I have run into problem. I have a combo box with 3 options. Each option is a string. The three options are Day, Week, and Month. What I want to do is if Day is picked than a variable equals 30 (a double) and so on. Can someone help me buy telling me how to give “emailvalue” a value based on the selected option in the combobox?

EDIT: Im going to add my actual program code which is a monthly data calculater. It does compile.

Here is the code:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.awt.image.*;
    import java.awt.geom.*;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    /** 
    * @author (Andrew Napier, Sikander Singh) 
    * @version (December 18th, 2012)
    */
    public class MonthlyData extends JFrame
    {
    private JLabel title, stitle, l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14;
    private JLabel l15,l16,l17,l18,l19,l20,l21,l22,l23,l24,l25,l26,l27,l28,l29;
    private JLabel Usage,Estimated,solu1,solu2,total2;
    private JPanel  panel1, panel2, panel3, panel4, panel5, panel6, panel7;
    String[] deviceStrings = { "Blackberry", "Other", "Internetstick"};
    String[] date = { "Day", "Week", "Month"};
    public double email2 = 0;
    public double email1;
    static final int email50 = 50;
    static final int email100 = 100;
    static final int email150 = 150;
    static final int email200 = 200;
    static final int email250 = 250;
    static final int email300 = 300;
    public JSlider Email = new JSlider(0,300,0);
    public JSlider Web = new JSlider(0,500,0);
    public JSlider IM = new JSlider(0,500,0);
    public JSlider Video = new JSlider(0,300,0);
    public JSlider Song = new JSlider(0,200,0);
    public  JSlider App_G = new JSlider(0,100,0);
    public String currentdate;        
    public double emailvalue;
    public MonthlyData ()
    {
        super ("MonthlyData");
        setSize (1000,1100);    
        ////////////////////////////////////////////////////// panel1
        panel1 = new JPanel ();                                              
        panel1.setLayout (new GridLayout(1,1));
        panel1.setVisible(true);
        panel1.setBackground (Color.black);
        title = new JLabel ("                                     WANNA KNOW HOW MUCH DATA",JLabel.LEFT);
        title.setForeground(Color.white);
        title.setFont (new Font("Times New Roman",Font.BOLD,25));
        l1 = new JLabel ("");
        l2 = new JLabel ("");
        /////////////////////////////////////////////// panel2   
        panel2 = new JPanel ();                                             
        panel2.setLayout (new GridLayout(1,1));
        panel2.setVisible(true);
        panel2.setBackground (Color.gray);
        stitle = new JLabel ("           PICK A PHONE OR INTERNET STICK AND THEN DRAG THE .",JLabel.LEFT);
        stitle.setForeground(Color.black);
        stitle.setFont (new Font("Times New Roman",Font.BOLD,14));
        //////////////////////////////////////////////// panel3
        panel3 = new JPanel ();                                              
        panel3.setLayout (new FlowLayout());
        panel3.setVisible(true);
        panel3.setBackground (Color.white);
        l3 = new JLabel ("Select Your Device:",JLabel.RIGHT);
        l3.setForeground(Color.red);
        JComboBox devicelist = new JComboBox (deviceStrings);
        l4 = new JLabel ("Tell us how much of what's listed here you think you'll use:");
        ///////////////////////////////////////////////// panel4    
        panel4 = new JPanel ();                                               
        panel4.setLayout (new GridLayout(6,7));
        panel4.setVisible(true);
        panel4.setBackground (Color.white);
        l5 = new JLabel ("Email");
        l6 = new JLabel ("WebPage");
        l7 = new JLabel ("Instant Message");
        l8 = new JLabel ("Streaming Video");
        l9 = new JLabel ("Song");
        l10 = new JLabel ("Application or Game");    
        l11 = new JLabel (""+" Emails");
        final JComboBox date1 = new JComboBox (date);
           date1.addActionListener(new ActionListener() {//add actionlistner to listen for change
            @Override
            public void actionPerformed(ActionEvent e) {    
                String s = (String) date1.getSelectedItem();//get the selected item    
                switch (s) {//check for a match
                    case "Day":
                        emailvalue = 30;                            
                        break;
                    case "Week":
                        emailvalue = 4;                            
                        break;
                    case "Month":
                        emailvalue = 1;
                        System.out.println("Month selected, emailvalue:" + emailvalue);
                        break;                        
                }
            }
        });

        l12 = new JLabel ("   0.002 MB");    
        l13 = new JLabel (""+email2+" MB");
        double web1 = 0;
        l14 = new JLabel (""+web1+" WebPages");
        JComboBox date2 = new JComboBox (date);
        l15 = new JLabel ("  0.07 MB");
        double web2 = 0;
        l16 = new JLabel (""+web2+" MB");
        double IM1 = 0;
        l17 = new JLabel (""+IM1+" IMs");
        JComboBox date3 = new JComboBox (date);
        l18 = new JLabel ("  0.005 MB");
        double IM2 = 0;
        l19 = new JLabel (""+IM2+" MB");
        double video1 = 0;
        l20 = new JLabel (""+video1+" Minutes");
        JComboBox date4 = new JComboBox (date);
        l21 = new JLabel ("   1 MB");
        double video2 = 0;
        l22 = new JLabel (""+video2+" MB");
        double song1 = 0;
        l23 = new JLabel (""+song1+" MP3's");
        JComboBox date5 = new JComboBox (date);
        l24 = new JLabel ("    4 MB");
        double song2 = 0;
        l25 = new JLabel (""+song2+" MB");
        double app1 = 0;
        l26 = new JLabel (""+app1+" App/Games");
        JComboBox date6 = new JComboBox (date);
        l27 = new JLabel ("   0.44 MB");
        double app2 = 0;
        l28 = new JLabel (""+app2+" MB");
        //////////////////////////////////////////////// panel5
        panel5 = new JPanel ();                                            
        panel5.setLayout (new GridLayout(1,1));
        panel5.setVisible(true);
        panel5.setBackground (Color.white);
        solu1 = new JLabel ("WE THINK YOUR MONTHLY DATA USAGE WILL BE:");
        solu1.setForeground (Color.red);
        solu1.setFont (new Font("Times New Roman",Font.BOLD,20));
        double total = 0;
        total2 = new JLabel (""+total+" MB");
        total2.setForeground (Color.red);
        total2.setFont (new Font("Times New Roman",Font.BOLD,20));
        /////////////////////////////////////////// panel6
        panel6 = new JPanel ();
        panel6.setLayout (new GridLayout (1,1));
        panel6.setVisible (true);
        panel6.setBackground (Color.white);
        Usage = new JLabel ("Usage per unit");
        Usage.setForeground (Color.red);
        Estimated = new JLabel ("     Estimated total");
        Estimated.setForeground (Color.red);
        ////////////////////////////////////////////// panel7
        panel7 = new JPanel ();
        panel7.setLayout (new GridLayout (1,1));
        panel7.setVisible (true);
        panel7.setBackground (Color.white);
        solu2 = new JLabel ("Data usage varies by device and other factors and the .");
        solu2.setForeground (Color.black);
        /////////////////////////////////////////////////// Implements
        Container container = getContentPane ();
        container.setLayout (null);      //changed
        container.setBackground (Color.white);

        container.add (panel1).setBounds (0,0,1000,120);        //panel1
        panel1.add (title).setSize(500,500);

        container.add (panel2).setBounds (0,100,1000,120);      //panel2
        panel2.add (stitle);

        container.add (panel3).setBounds (0,220,1000,100);      //panel3
        panel3.add (l3);
        panel3.add (devicelist);
        panel3.add (l4);

        container.add (panel4).setBounds (0,340,1000,150);      //panel4
        Email.addChangeListener(new SliderHandler());
        Web.addChangeListener(new SliderHandler());
        IM.addChangeListener(new SliderHandler());
        Video.addChangeListener(new SliderHandler());
        Song.addChangeListener(new SliderHandler());
        App_G.addChangeListener(new SliderHandler());

        panel4.add (l5);
        panel4.add (Email);
        panel4.add (l11);
        panel4.add (date1);
        panel4.add (l12);
        panel4.add (l13);
        panel4.add (l6);
        panel4.add (Web);
        panel4.add (l14);
        panel4.add (date2);
        panel4.add (l15);
        panel4.add (l16);
        panel4.add (l7);
        panel4.add (IM);
        panel4.add (l17);
        panel4.add (date3);
        panel4.add (l18);
        panel4.add (l19);
        panel4.add (l8);
        panel4.add (Video);
        panel4.add (l20);
        panel4.add (date4);
        panel4.add (l21);
        panel4.add (l22);
        panel4.add (l9);
        panel4.add (Song);
        panel4.add (l23);
        panel4.add (date5);
        panel4.add (l24);
        panel4.add (l25);
        panel4.add (l10);
        panel4.add (App_G);
        panel4.add (l26);
        panel4.add (date6);
        panel4.add (l27);
        panel4.add (l28);
        container.add (panel5).setBounds (210,540,1000,50);    // panel5
        panel5.add (solu1);
        panel5.add (total2);
        container.add (panel6).setBounds (670,220,200,220);      // panel6
        panel6.add (Usage);
        panel6.add (Estimated);

        container.add (panel7).setBounds (210,580,530,50);    // panel7
        panel7.add (solu2);

        Email.setOpaque(false);
        Web.setOpaque(false);
        IM.setOpaque(false); 
        Video.setOpaque(false); 
        Song.setOpaque(false);
        App_G.setOpaque(false); 
        setVisible (true);
    }

    public static void main (String[] args)
    {
        MonthlyData application = new MonthlyData ();
    }        

    public class SliderHandler implements ChangeListener
    {
        public void stateChanged(ChangeEvent e)
        {
            if (e.getSource().equals(Email))
            {
                l11.setText(""+Email.getValue());    
                email2= (Email.getValue() * 0.002);
                l13.setText(email2 + "MB");
            }
            if (e.getSource().equals(Web))
            {
                l14.setText(""+Web.getValue());
            }    
            if (e.getSource().equals(IM))
            {
                l17.setText(""+IM.getValue());
            }    
            if (e.getSource().equals(Video))
            {
                l20.setText(""+Video.getValue());
            }    
            if (e.getSource().equals(Song))
            {
                l23.setText(""+Song.getValue());
            }    
            if (e.getSource().equals(App_G))
            {
                l26.setText(""+App_G.getValue());
            }    
        }
    }

    public void paint (Graphics g)
    {
        super.paint(g);    
    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T05:38:50+00:00Added an answer on June 17, 2026 at 5:38 am

    1) Well firstly you’d need an ActionListener added to the JComboBox to listen for selected item changes.

    2) Within actionPerformed(...) of ActionListener get the selected item via getSelectedItem() and cast to a String as the method returns an Object.

    3) Use a switch statement to check which one the selected item matches i.e day, month,week and than assign a value accordingly.

    For example:

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.SwingUtilities;
    
    public class MonthlyData {
    
        public double emailvalue;
        private String[] date = {"Day", "Week", "Month"};
        private JFrame frame;
    
        public MonthlyData() {
            frame = new JFrame();//use an instance rather than extending the class
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    
            final JComboBox date1 = new JComboBox(date);
    
            ActionListener cbActionListener = new ActionListener() {//add actionlistner to listen for change
                @Override
                public void actionPerformed(ActionEvent e) {
    
                    String s = (String) date1.getSelectedItem();//get the selected item
    
                    switch (s) {//check for a match
                        case "Day":
                            emailvalue = 1.1;
                            System.out.println("Day selected, emailvalue:" + emailvalue);
                            break;
                        case "Week":
                            emailvalue = 2.2;
                            System.out.println("Week selected, emailvalue:" + emailvalue);
                            break;
                        case "Month":
                            emailvalue = 3.3;
                            System.out.println("Month selected, emailvalue:" + emailvalue);
                            break;
                        default:
                            emailvalue = 4.4;
                            System.out.println("No match selected, emailvalue:" + emailvalue);
                            break;
                    }
                }
            };
    
            date1.addActionListener(cbActionListener);
    
            frame.add(date1);
            frame.pack();
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    new MonthlyData();
                }
            });
        }
    }
    

    UPDATE:

    After you added an SSCCE and commented:

    If you go down to the SliderHandler class, type in
    email2=(Email.getValue() * 0.002)*emailvalue; if you do the label wont
    update in real time. but if you replace emailvalue with lets say 5, it
    will update

    The problem is

    On start up the emailvalue is not yet set. It will only be set on the first time the selected item/index is changed.

    To solve this we must simply give it a default selected value by calling setSelectedItem(..) before its visible:

    final JComboBox date1 = new JComboBox(date);
    date1.addActionListener(new ActionListener() {//add actionlistner to listen for change
        @Override
        public void actionPerformed(ActionEvent e) {
    
            String s = (String) date1.getSelectedItem();//get the selected item
    
            switch (s) {//check for a match
                case "Day":
                    emailvalue = 30;
                    break;
                case "Week":
                    emailvalue = 4;
                    break;
                case "Month":
                    emailvalue = 1;
                    System.out.println("Month selected, emailvalue:" + emailvalue);
                    break;
            }
        }
    });
    date1.setSelectedItem(date[0]);//set Day as default selected item/emailvalue
    

    Suggestions on your code:

    • Swing components should be created and manipulated on EDT via SwingUtilities.invokeLater(Runnable r) block.

    • Dont override paint(..) of JFrame rather add JPanel and override paintComponent(Graphics g)

    • Dont call setBounds or setSize rather use an appropriate LayoutManager and/or override getPreferredSize() of JPanel and return Dimensions which fit its contents than call pack() on JFrame before setting it visible.

    • Dont extend JFrame unnecessarily

    • Dont implement ActionListener on the class unless the class will be used as one and or its methods must be exposed to other classes

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have created a three page web page and I'm using an external css
I'm currently doing the redesign for this site: http://www.palosverdes.com/rpv2012/ and have run into a
While trying to define some mathematical objects using the Numeric prelude I've run into
We have run into a wall trying to figure out why CSS inheritance does
I'm creating a simple drawing application using WPF. I've run into some strange behaviour
I have been using the default colors Grey and Blue for cell selection, but
I am doing a piece of coursework in Java using BlueJ. We need to
I have a function which calculates image texture (using 2D convolution via NLFILTER): y=imagetexture(image,winsize)
I have the following C++ code and when I run the program sometimes it
I'm trying to do a sliding door effect using jquery. I have mocked it

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.