Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Java Problem with Java Color (setBackground(Color))

  1. Feb 18, 2017 #1

    BiGyElLoWhAt

    User Avatar
    Gold Member

    Code (Java):
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.MenuItem;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;

    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JSpinner;
    import javax.swing.JTextArea;
    import javax.swing.SpinnerNumberModel;
    import javax.swing.border.EmptyBorder;

    public class ScheduleGUI extends JFrame implements ActionListener{
       
        String newLine = System.getProperty("line.separator");
       
        private JPanel coursePane;
        private JPanel initializePane;
        private JPanel addPane;
        private JPanel instructionPane;
        private JPanel timePane;
        private JPanel rightContainer;
        private JPanel courseNames;
        private JPanel days;
        private JPanel courseTimes;
        private JPanel courseTimesStart;
        private JPanel courseTimesEnd;
       
        //Browse browse;
       
        /*
         * For the check boxes
         */

        private JLabel mo;
        private JLabel tu;
        private JLabel we;
        private JLabel th;
        private JLabel fr;
        private JLabel sa;
        private JLabel su;
        private JLabel times[];
        /*
         * For the graphic schedule
         */

        private JLabel monday;
        private JLabel tuesday;
        private JLabel wednesday;
        private JLabel thursday;
        private JLabel friday;
        private JLabel saturday;
        private JLabel sunday;
       
        private JTextArea instructions;
       
        private JCheckBox moBox;
        private JCheckBox tuBox;
        private JCheckBox weBox;
        private JCheckBox thBox;
        private JCheckBox frBox;
        private JCheckBox saBox;
        private JCheckBox suBox;
       
        private TextField name;
        private TextField courseName;
       
        private JSpinner startTimeMinutes;
        private JSpinner startTimeHours;
        private JSpinner endTimeMinutes;
        private JSpinner endTimeHours;
        private SpinnerNumberModel minuteModelStart;
        private SpinnerNumberModel minuteModelEnd;
        private SpinnerNumberModel hourModelStart;
        private SpinnerNumberModel hourModelEnd;

       
        private JButton initialize;
        private JButton add;
        private JButton remove;
       
        private JScrollPane scroll;  
       
        private JMenuBar menu;
        private JMenu file;
        private JMenu colors;
        private JMenuItem save;
        private JMenuItem load;
        private JMenuItem exit;
       
        private JRadioButtonMenuItem red;
        private JRadioButtonMenuItem green;
        private JRadioButtonMenuItem blue;
        private ButtonGroup colorGroup;
       
        GridBagConstraints c;
       
        public ScheduleGUI()
        {
            //browse = new Browse();
            getContentPane().setBackground(Color.GREEN);
            /*
             * initialize labels for text boxes
             */

            mo = new JLabel("M");
            tu = new JLabel("T");
            we = new JLabel("W");
            th = new JLabel("R");
            fr = new JLabel("F");
            sa = new JLabel("S");
            su = new JLabel("N");
           
            monday = new JLabel("Monday");
            tuesday = new JLabel("Tuesday");
            wednesday = new JLabel("Wednesday");
            thursday = new JLabel("Thursday");
            friday = new JLabel("Farraday");
            saturday = new JLabel("Saturday");
            sunday = new JLabel("Sunday");
           
            /*
             * Get 15 minute intervals of time between 8am and 8pm
             * to be used for scheduling;
             */

           
            String zeros = "00";
            String ampm = "am";
            times = new JLabel[49];
            int k = 0;
            for(int i = 0 ; i< 49 ; i++)
            {
                if(i%4 == 0 && i !=0) k++;
                int hour = (7 + k)%12 +1;
                if(k>3) ampm = "pm";
                int minutes = 15*(i%4);
                if(minutes == 0) times[i] = new JLabel(hour + ":" + zeros +ampm);
                else times[i] = new JLabel(hour + ":" + minutes +ampm);
               
            }
           
            /*
             * TODO
             * panes ,
             *
             *
             *
             *
             *
             * scroll pane ,
             *
             * text areas ,
             */

           
            moBox = new JCheckBox();
            tuBox = new JCheckBox();
            weBox = new JCheckBox();
            thBox = new JCheckBox();
            frBox = new JCheckBox();
            saBox = new JCheckBox();
            suBox = new JCheckBox();
           
            /*
             * Buttons
             */

            initialize = new JButton("Initialize");
            initialize.addActionListener(this);
           
            add = new JButton("Add");
            add.addActionListener(this);
           
            remove = new JButton("Remove");
            remove.addActionListener(this);
           
            /*
             * File Menu
             */

           
            menu = new JMenuBar();
           
            file = new JMenu("File");
            file.setMnemonic(KeyEvent.VK_F);
           
           
            save = new JMenuItem("Save");
            save.addActionListener(this);
            save.setMnemonic(KeyEvent.VK_S);
           
            load = new JMenuItem("Load");
            load.addActionListener(this);
            load.setMnemonic(KeyEvent.VK_L);
           
            exit = new JMenuItem("Exit");
            exit.addActionListener(this);
            exit.setMnemonic(KeyEvent.VK_X);
           
            file.add(save);
            file.add(load);
            file.add(exit);
           
            /*
             * Color Menu
             */

            colors = new JMenu("Colors");
            colors.setMnemonic(KeyEvent.VK_C);
           
            colorGroup = new ButtonGroup();
                   
            red = new JRadioButtonMenuItem("Red");
            red.addActionListener(this);
           
            green = new JRadioButtonMenuItem("Green");
            green.addActionListener(this);
           
            blue = new JRadioButtonMenuItem("Blue");
            blue.addActionListener(this);      
           
            colorGroup.add(red);
            colors.add(red);
            colorGroup.add(green);
            colors.add(green);
            colorGroup.add(blue);
            colors.add(blue);
           
            menu.add(file);
            menu.add(colors);
           
            /*
             * Student Info fields
             */

           
            name = new TextField("Name");
            courseName = new TextField("Course Name");
            minuteModelStart = new SpinnerNumberModel(0,0,45,15);
            hourModelStart = new SpinnerNumberModel(8,1,12,1);
            minuteModelEnd = new SpinnerNumberModel(0,0,45,15);
            hourModelEnd = new SpinnerNumberModel(8,1,12,1);
            startTimeMinutes = new JSpinner(minuteModelStart);
            startTimeHours = new JSpinner(hourModelStart);
            endTimeHours = new JSpinner(hourModelEnd);
            endTimeMinutes = new JSpinner(minuteModelEnd);
           
            scroll = new JScrollPane();  
           
            /*
             *
             * Create GUI
             *
             *
             */

           
            coursePane = new JPanel(new GridBagLayout());
            initializePane = new JPanel(new GridLayout(2,1));
            courseNames = new JPanel();

            days = new JPanel(new GridLayout(2,7));
            addPane = new JPanel(new GridLayout(1,2));
            timePane = new JPanel(new GridLayout(50,1));
            rightContainer = new JPanel(new GridBagLayout());
            courseTimes = new JPanel(new GridLayout(1,4));
            instructionPane = new JPanel();
           
            /*
             * Fill time pane with JLabels
             */

            timePane.add(new JLabel("")); //Create a blank line
            for(int i = 0; i<49 ; i++)
                timePane.add(times[i]);
            add(timePane,BorderLayout.WEST);
           
            /*
             * Add Items to panels
             */

           
            //****************************
           
            /*
             * Course display Pane
             */

           
           
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            c.gridheight = 1;
            c.gridwidth = 1;
            c.weightx = .1428;
            c.fill = GridBagConstraints.HORIZONTAL;      
            coursePane.add(monday,c);  

           
            c.gridx = 1;      
            coursePane.add(tuesday,c);
           
            c.gridx = 2;      
            coursePane.add(wednesday,c);
           
            c.gridx = 3;      
            coursePane.add(thursday,c);
           
            c.gridx = 4;      
            coursePane.add(friday,c);
           
            c.gridx = 5;      
            coursePane.add(saturday,c);
           
            c.gridx = 6;      
            coursePane.add(sunday,c);
           
            coursePane.setBorder(new EmptyBorder(10,10,10,10));
           
            scroll.add(coursePane);
           
           
           
            /*
             * Initialize pane
             */

           
            initializePane.add(name);
            initializePane.add(initialize);
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            c.gridheight = 2;
            c.gridwidth = 7;
            c.weighty = .2;
            //c.fill = GridBagConstraints.BOTH;
            c.anchor = GridBagConstraints.NORTH;
            rightContainer.add(initializePane, c);
           
            /*
             * Course Name
             */

            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 2;
            c.gridheight = 1;
            c.gridwidth = 7;
            c.weighty = .1;
            //c.fill = GridBagConstraints.BOTH;
            courseNames.add(courseName);
            rightContainer.add(courseNames,c);
           
            /*
             * Course times
             */

           
            courseTimes.add(startTimeHours);
            courseTimes.add(startTimeMinutes);
            courseTimes.add(endTimeHours);
            courseTimes.add(endTimeMinutes);
           
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 3;
            c.gridheight = 1;
            c.gridwidth = 7;
            c.weighty = .1;
            //c.fill = GridBagConstraints.BOTH;
           
            rightContainer.add(courseTimes,c);
           
            /*
             * Days of the week and check boxes
             */

           
            days.add(moBox);
            days.add(tuBox);
            days.add(weBox );
            days.add(thBox);
            days.add(frBox);
            days.add(saBox);
            days.add(suBox);
            days.add(mo);
            days.add(tu);
            days.add(we);
            days.add(th);
            days.add(fr);
            days.add(sa);
            days.add(su);      
           
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 4;
            c.gridheight = 2;
            c.gridwidth = 7;
            c.weighty = .2;
            //c.fill = GridBagConstraints.BOTH;
           
            rightContainer.add(days,c);
           
           
            /*
             * Add and remove
             */

           
            addPane.add(add);
            addPane.add(remove);
           
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 6;
            c.gridheight = 1;
            c.gridwidth = 7;
            c.weighty = .1;
            //c.fill = GridBagConstraints.BOTH;
           
            rightContainer.add(addPane,c);
           
            /*
             * Instructions
             */

           
            instructions = new JTextArea("Instructions go here");
            instructionPane.add(instructions);
           
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 7;
            c.gridheight = 3;
            c.gridwidth = 7;
            c.weighty = .3;
            c.fill = GridBagConstraints.BOTH;
           
            rightContainer.add(instructionPane,c);
           
           
           
           
            add(scroll,BorderLayout.CENTER);
            add(menu,BorderLayout.NORTH);
            add(rightContainer,BorderLayout.EAST);
           
            setBounds(200,200,800,800);
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
           
           
        }
        public static void main(String args[])
        {
            ScheduleGUI sg1 = new ScheduleGUI();
            sg1.setVisible(true);
        }
        @Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==add)            addClass();
           
            else if(e.getSource()==save)    browse.save(menu, generateString());
           
            else if(e.getSource()==red)     getContentPane().setBackground(Color.red);
           
            else if(e.getSource()==green)   getContentPane().setBackground(Color.green);
           
            else if(e.getSource()==blue)    getContentPane().setBackground(Color.blue);

           
        }
       
        private void addClass()
        {
           
        }
       
        private String generateString()
        {
           
            return "";
        }

    }
     

    Everywhere I read, I see I want this.getContentPane.setBackground(Color);
    This doesn't work for me. It didn't on the last project either, and I just let it slide thinking I'd figure it out. Now here I am, same problem. Any help would be appreciated.

    Notes:
    You might get some "errors". Just don't hit save. I use a custom class Browse for my loading and saving. I took out the mentions of it that I think should be a problem.

    I thought I just wasn't accessing the colors properly, but I added a setBackground call in the initialization and still nothing. What am I doing wrong? I have to turn this in in 1 hour, as well =/

    Any help greatly appreciated.
     
  2. jcsd
  3. Feb 19, 2017 #2

    jedishrfu

    Staff: Mentor

  4. Feb 22, 2017 #3

    BiGyElLoWhAt

    User Avatar
    Gold Member

    That makes sense why you can't see the colors, then. Thanks.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Problem with Java Color (setBackground(Color))
Loading...