H:\CSC120\Java\lec29\src\MUFrame.java |
1
2
3
4
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
16
17
18
19
20
21
22
23
24
25 public MUFrame() {
26 initComponents();
27 muPanel = new MUPanel();
28 drawingPanel.add(muPanel);
29
30
31
32
33 }
34
35
36
37
38
39
40
41 This method is called from within the constructor to
42 initialize the form.
43
44
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
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