H:\CSC120\Java\lec29\src\MUFrame.java
  1 /* CSC 120 Lecture 29
  2  *
  3  * Demonstration of nested loops and use of
  4  * Slider and Spinner GUI component
  5  *
  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         jLabel1 = new javax.swing.JLabel();
 52         jLabel2 = new javax.swing.JLabel();
 53         changeSizeButton = new javax.swing.JButton();
 54         rowsSpinner = new javax.swing.JSpinner();
 55         columnSlider = new javax.swing.JSlider();
 56 
 57         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 58 
 59         javax.swing.GroupLayout drawingPanelLayout = new javax.swing.GroupLayout(drawingPanel);
 60         drawingPanel.setLayout(drawingPanelLayout);
 61         drawingPanelLayout.setHorizontalGroup(
 62             drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 63             .addGap(0, 639, Short.MAX_VALUE)
 64         );
 65         drawingPanelLayout.setVerticalGroup(
 66             drawingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 67             .addGap(0, 507, Short.MAX_VALUE)
 68         );
 69 
 70         jLabel1.setText("No. of Rows:");
 71 
 72         jLabel2.setText("No. of Columns:");
 73 
 74         changeSizeButton.setText("Change Rows & Columns");
 75         changeSizeButton.addActionListener(new java.awt.event.ActionListener() {
 76             public void actionPerformed(java.awt.event.ActionEvent evt) {
 77                 changeSizeButtonActionPerformed(evt);
 78             }
 79         });
 80 
 81         rowsSpinner.setValue(new Integer(10));
 82         rowsSpinner.addChangeListener(new javax.swing.event.ChangeListener() {
 83             public void stateChanged(javax.swing.event.ChangeEvent evt) {
 84                 rowSpinnerStateChanged(evt);
 85             }
 86         });
 87 
 88         columnSlider.setMaximum(30);
 89         columnSlider.setValue(15);
 90         columnSlider.addChangeListener(new javax.swing.event.ChangeListener() {
 91             public void stateChanged(javax.swing.event.ChangeEvent evt) {
 92                 columnSliderStateChanged(evt);
 93             }
 94         });
 95 
 96         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 97         getContentPane().setLayout(layout);
 98         layout.setHorizontalGroup(
 99             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
100             .addComponent(drawingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
101             .addGroup(layout.createSequentialGroup()
102                 .addContainerGap()
103                 .addComponent(jLabel1)
104                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
105                 .addComponent(rowsSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
106                 .addGap(103, 103, 103)
107                 .addComponent(jLabel2)
108                 .addGap(18, 18, 18)
109                 .addComponent(columnSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
110                 .addGap(77, 77, 77)
111                 .addComponent(changeSizeButton))
112         );
113         layout.setVerticalGroup(
114             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
115             .addGroup(layout.createSequentialGroup()
116                 .addContainerGap()
117                 .addComponent(drawingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
118                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 44, Short.MAX_VALUE)
119                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
120                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
121                         .addComponent(jLabel1)
122                         .addComponent(jLabel2)
123                         .addComponent(changeSizeButton)
124                         .addComponent(rowsSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
125                     .addComponent(columnSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
126                 .addGap(14, 14, 14))
127         );
128 
129         pack();
130     }// </editor-fold>                        
131 
132     private void changeSizeButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                 
133         int r = (Integer) rowsSpinner.getValue();
134         int c = columnSlider.getValue();
135         
136         muPanel.setNumRows(r);
137         muPanel.setNumCols(c);
138         muPanel.repaint();
139     }                                                
140 
141     private void rowSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {                                        
142         int r = (Integer) rowsSpinner.getValue();
143         muPanel.setNumRows(r);
144         muPanel.repaint();
145     }                                       
146 
147     private void columnSliderStateChanged(javax.swing.event.ChangeEvent evt) {                                          
148         int c = columnSlider.getValue();
149         muPanel.setNumCols(c);
150         muPanel.repaint();
151     }                                         
152 
153     /**
154      * @param args the command line arguments
155      */
156     public static void main(String args[]) {
157         java.awt.EventQueue.invokeLater(new Runnable() {
158 
159             public void run() {
160                 new MUFrame().setVisible(true);
161             }
162         });
163     }
164     // Variables declaration - do not modify                     
165     private javax.swing.JButton changeSizeButton;
166     private javax.swing.JSlider columnSlider;
167     private javax.swing.JPanel drawingPanel;
168     private javax.swing.JLabel jLabel1;
169     private javax.swing.JLabel jLabel2;
170     private javax.swing.JSpinner rowsSpinner;
171     // End of variables declaration                   
172 }
173