H:\CSC120\Java\lec18part2\src\MUFrame.java
  1 /* CSC 120 Lecture 20
  2  *
  3  *
  4  * Houses with Windows and Buttons that turn
  5  * lights on and off
  6  */
  7 
  8 import java.awt.*;
  9 import javax.swing.*;
 10 
 11 public class MUFrame extends javax.swing.JFrame {
 12 
 13     private MUPanel muPanel;
 14     
 15     // declare private data here
 16     
 17     
 18     
 19     
 20     
 21     
 22     
 23     
 24     // constructor method
 25     public MUFrame() {
 26         initComponents();
 27         muPanel = new MUPanel();
 28         drawingPanel.add(muPanel);
 29         
 30         
 31         
 32         
 33     } // end of constructor
 34     
 35     // declare other methods here
 36     
 37     
 38     
 39     
 40 
 41     /** This method is called from within the constructor to
 42      * initialize the form.
 43      * WARNING: Do NOT modify this code. The content of this method is
 44      * always regenerated by the Form Editor.
 45      */
 46     @SuppressWarnings("unchecked")
 47     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
 48     private void initComponents() {
 49 
 50         drawingPanel = new javax.swing.JPanel();
 51         lightsOnButton = new javax.swing.JButton();
 52         lightsOffButton = new javax.swing.JButton();
 53         toggleButton = new javax.swing.JButton();
 54 
 55         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 56 
 57         javax.swing.GroupLayout drawingPanelLayout = new javax.swing.GroupLayout(drawingPanel);
 58         drawingPanel.setLayout(drawingPanelLayout);
 59         drawingPanelLayout.setHorizontalGroup(
 60             drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 61             .addGap(0, 639, Short.MAX_VALUE)
 62         );
 63         drawingPanelLayout.setVerticalGroup(
 64             drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 65             .addGap(0, 507, Short.MAX_VALUE)
 66         );
 67 
 68         lightsOnButton.setText("Turn Lights On");
 69         lightsOnButton.addActionListener(new java.awt.event.ActionListener() {
 70             public void actionPerformed(java.awt.event.ActionEvent evt) {
 71                 lightsOnButtonActionPerformed(evt);
 72             }
 73         });
 74 
 75         lightsOffButton.setText("Turn Lights Off");
 76         lightsOffButton.addActionListener(new java.awt.event.ActionListener() {
 77             public void actionPerformed(java.awt.event.ActionEvent evt) {
 78                 lightsOffButtonActionPerformed(evt);
 79             }
 80         });
 81 
 82         toggleButton.setText("Toggle Lights On/Off");
 83         toggleButton.addActionListener(new java.awt.event.ActionListener() {
 84             public void actionPerformed(java.awt.event.ActionEvent evt) {
 85                 toggleButtonActionPerformed(evt);
 86             }
 87         });
 88 
 89         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 90         getContentPane().setLayout(layout);
 91         layout.setHorizontalGroup(
 92             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 93             .addComponent(drawingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 94             .addGroup(layout.createSequentialGroup()
 95                 .addGap(41, 41, 41)
 96                 .addComponent(lightsOnButton)
 97                 .addGap(46, 46, 46)
 98                 .addComponent(lightsOffButton)
 99                 .addGap(61, 61, 61)
100                 .addComponent(toggleButton))
101         );
102         layout.setVerticalGroup(
103             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
104             .addGroup(layout.createSequentialGroup()
105                 .addContainerGap()
106                 .addComponent(drawingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
107                 .addGap(18, 18, 18)
108                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
109                     .addComponent(lightsOnButton)
110                     .addComponent(lightsOffButton)
111                     .addComponent(toggleButton))
112                 .addContainerGap(43, Short.MAX_VALUE))
113         );
114 
115         pack();
116     }// </editor-fold>                        
117 
118     private void lightsOnButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
119         muPanel.turnOnAllLightsInAllHouses();
120         muPanel.repaint();
121     }                                              
122 
123     private void lightsOffButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
124         muPanel.turnOffAllLightsInAllHouses();
125         muPanel.repaint();
126     }                                               
127 
128     private void toggleButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
129         muPanel.toggleLightsInAllHouses();
130         muPanel.repaint();
131     }                                            
132 
133     /**
134      * @param args the command line arguments
135      */
136     public static void main(String args[]) {
137         java.awt.EventQueue.invokeLater(new Runnable() {
138 
139             public void run() {
140                 new MUFrame().setVisible(true);
141             }
142         });
143     }
144     // Variables declaration - do not modify                     
145     private javax.swing.JPanel drawingPanel;
146     private javax.swing.JButton lightsOffButton;
147     private javax.swing.JButton lightsOnButton;
148     private javax.swing.JButton toggleButton;
149     // End of variables declaration                   
150 }
151