1+ package Main ;
2+
13import javax .swing .JOptionPane ;
24import java .util .ArrayList ;
35import java .util .List ;
911import java .util .Scanner ;
1012import javax .swing .JFileChooser ;
1113
12- import myPack .Vizualization ;
14+ import myPack .* ;
1315
1416public class Form extends javax .swing .JFrame {
15- public Form () {
16- initComponents ();
17- }
18-
19- public Graphics2D g2 ;
20- // ???
21-
22- int numArr [], curr_pos = 0 ;
23- boolean draw = true ;
24- long start , end ;
25-
17+ //Графон
18+ private Graphics2D g2 ;
19+
2620 //Список состояний массива
2721 private List <int []> mainList = new ArrayList <int []>();
22+
2823 //Линии, координаты которых основаны на индексах массива
29- private List <int []> linesList = new ArrayList <int []>();
24+ //public List<int[]> linesList = new ArrayList<int[]>();
25+
26+ //Рисовалка
27+ private Vizualization Draw = new Vizualization (mainList );
28+
29+ public Form () {
30+ initComponents ();
31+
32+ g2 = (Graphics2D ) jPanel1 .getGraphics ();
33+ jPanel1 .validate ();
34+ }
3035
31- public Vizualization Draw = new Vizualization (mainList , linesList );
32- //Draw.paintComponents(???);
36+ private int numArr [], curr_pos = 0 ;
37+ private boolean draw = true ;
38+ private long start , end ;
39+
40+ //Сортировка
41+ private Sort srt ;
3342
3443 //@SuppressWarnings("unchecked");
3544 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
@@ -42,32 +51,10 @@ private void initComponents() {
4251 jCheckBox1 = new javax .swing .JCheckBox ();
4352 jButton3 = new javax .swing .JButton ();
4453 jButton4 = new javax .swing .JButton ();
45- jCheckBox2 = new javax .swing .JCheckBox ();
4654
4755 setDefaultCloseOperation (javax .swing .WindowConstants .EXIT_ON_CLOSE );
4856 setResizable (false );
49- addComponentListener (new java .awt .event .ComponentAdapter () {
50- public void componentShown (java .awt .event .ComponentEvent evt ) {
51- formComponentShown (evt );
52- }
53- });
54- addWindowStateListener (new java .awt .event .WindowStateListener () {
55- public void windowStateChanged (java .awt .event .WindowEvent evt ) {
56- formWindowStateChanged (evt );
57- }
58- });
59- addWindowListener (new java .awt .event .WindowAdapter () {
60- public void windowOpened (java .awt .event .WindowEvent evt ) {
61- //formWindowOpened(evt);
62- }
63- });
64-
65- jTextField1 .addMouseListener (new java .awt .event .MouseAdapter () {
66- public void mouseClicked (java .awt .event .MouseEvent evt ) {
67- jTextField1MouseClicked (evt );
68- }
69- });
70-
57+
7158 jButton1 .setText ("GO" );
7259 jButton1 .addActionListener (new java .awt .event .ActionListener () {
7360 public void actionPerformed (java .awt .event .ActionEvent evt ) {
@@ -81,12 +68,12 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
8168 javax .swing .GroupLayout jPanel1Layout = new javax .swing .GroupLayout (jPanel1 );
8269 jPanel1 .setLayout (jPanel1Layout );
8370 jPanel1Layout .setHorizontalGroup (
84- jPanel1Layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
85- .addGap (0 , 1411 , Short .MAX_VALUE )
71+ jPanel1Layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
72+ .addGap (0 , 0 , Short .MAX_VALUE )
8673 );
8774 jPanel1Layout .setVerticalGroup (
88- jPanel1Layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
89- .addGap (0 , 728 , Short .MAX_VALUE )
75+ jPanel1Layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
76+ .addGap (0 , 728 , Short .MAX_VALUE )
9077 );
9178
9279 jButton2 .setText ("File" );
@@ -97,6 +84,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
9784 });
9885
9986 jCheckBox1 .setText ("Steps" );
87+ jCheckBox1 .setEnabled (false );
10088 jCheckBox1 .addChangeListener (new javax .swing .event .ChangeListener () {
10189 public void stateChanged (javax .swing .event .ChangeEvent evt ) {
10290 jCheckBox1StateChanged (evt );
@@ -119,53 +107,42 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
119107 }
120108 });
121109
122- jCheckBox2 .setSelected (true );
123- jCheckBox2 .setText ("View" );
124- jCheckBox2 .addActionListener (new java .awt .event .ActionListener () {
125- public void actionPerformed (java .awt .event .ActionEvent evt ) {
126- jCheckBox2ActionPerformed (evt );
127- }
128- });
129-
130110 javax .swing .GroupLayout layout = new javax .swing .GroupLayout (getContentPane ());
131111 getContentPane ().setLayout (layout );
132112 layout .setHorizontalGroup (
133- layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
134- .addGroup (layout .createSequentialGroup ()
135- .addContainerGap ()
136- .addGroup (layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
137- .addComponent (jPanel1 , javax .swing .GroupLayout .DEFAULT_SIZE , javax .swing .GroupLayout .DEFAULT_SIZE , Short .MAX_VALUE )
138- .addGroup (layout .createSequentialGroup ()
139- .addComponent (jButton2 , javax .swing .GroupLayout .PREFERRED_SIZE , 77 , javax .swing .GroupLayout .PREFERRED_SIZE )
140- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .RELATED )
141- .addComponent (jTextField1 , javax .swing .GroupLayout .PREFERRED_SIZE , 934 , javax .swing .GroupLayout .PREFERRED_SIZE )
142- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
143- .addComponent (jButton1 , javax .swing .GroupLayout .PREFERRED_SIZE , 82 , javax .swing .GroupLayout .PREFERRED_SIZE )
144- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .RELATED )
145- .addComponent (jCheckBox2 )
146- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .RELATED )
147- .addComponent (jCheckBox1 )
148- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
149- .addComponent (jButton3 , javax .swing .GroupLayout .PREFERRED_SIZE , 77 , javax .swing .GroupLayout .PREFERRED_SIZE )
150- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
151- .addComponent (jButton4 , javax .swing .GroupLayout .PREFERRED_SIZE , 77 , javax .swing .GroupLayout .PREFERRED_SIZE )))
152- .addContainerGap ())
113+ layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
114+ .addGroup (layout .createSequentialGroup ()
115+ .addContainerGap ()
116+ .addGroup (layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
117+ .addComponent (jPanel1 , javax .swing .GroupLayout .DEFAULT_SIZE , javax .swing .GroupLayout .DEFAULT_SIZE , Short .MAX_VALUE )
118+ .addGroup (layout .createSequentialGroup ()
119+ .addComponent (jButton2 , javax .swing .GroupLayout .PREFERRED_SIZE , 77 , javax .swing .GroupLayout .PREFERRED_SIZE )
120+ .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .RELATED )
121+ .addComponent (jTextField1 , javax .swing .GroupLayout .PREFERRED_SIZE , 990 , javax .swing .GroupLayout .PREFERRED_SIZE )
122+ .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .RELATED )
123+ .addComponent (jButton1 , javax .swing .GroupLayout .PREFERRED_SIZE , 82 , javax .swing .GroupLayout .PREFERRED_SIZE )
124+ .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
125+ .addComponent (jCheckBox1 )
126+ .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
127+ .addComponent (jButton3 , javax .swing .GroupLayout .PREFERRED_SIZE , 77 , javax .swing .GroupLayout .PREFERRED_SIZE )
128+ .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
129+ .addComponent (jButton4 , javax .swing .GroupLayout .PREFERRED_SIZE , 77 , javax .swing .GroupLayout .PREFERRED_SIZE )))
130+ .addContainerGap ())
153131 );
154132 layout .setVerticalGroup (
155- layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
156- .addGroup (layout .createSequentialGroup ()
157- .addContainerGap ()
158- .addGroup (layout .createParallelGroup (javax .swing .GroupLayout .Alignment .BASELINE )
159- .addComponent (jTextField1 , javax .swing .GroupLayout .PREFERRED_SIZE , javax .swing .GroupLayout .DEFAULT_SIZE , javax .swing .GroupLayout .PREFERRED_SIZE )
160- .addComponent (jButton1 )
161- .addComponent (jButton2 )
162- .addComponent (jCheckBox1 )
163- .addComponent (jButton3 )
164- .addComponent (jButton4 )
165- .addComponent (jCheckBox2 ))
166- .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
167- .addComponent (jPanel1 , javax .swing .GroupLayout .DEFAULT_SIZE , javax .swing .GroupLayout .DEFAULT_SIZE , Short .MAX_VALUE )
168- .addContainerGap ())
133+ layout .createParallelGroup (javax .swing .GroupLayout .Alignment .LEADING )
134+ .addGroup (layout .createSequentialGroup ()
135+ .addContainerGap ()
136+ .addGroup (layout .createParallelGroup (javax .swing .GroupLayout .Alignment .BASELINE )
137+ .addComponent (jTextField1 , javax .swing .GroupLayout .PREFERRED_SIZE , javax .swing .GroupLayout .DEFAULT_SIZE , javax .swing .GroupLayout .PREFERRED_SIZE )
138+ .addComponent (jButton1 )
139+ .addComponent (jButton2 )
140+ .addComponent (jCheckBox1 )
141+ .addComponent (jButton3 )
142+ .addComponent (jButton4 ))
143+ .addPreferredGap (javax .swing .LayoutStyle .ComponentPlacement .UNRELATED )
144+ .addComponent (jPanel1 , javax .swing .GroupLayout .DEFAULT_SIZE , javax .swing .GroupLayout .DEFAULT_SIZE , Short .MAX_VALUE )
145+ .addContainerGap ())
169146 );
170147
171148 pack ();
@@ -177,18 +154,19 @@ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
177154 return ;
178155 }
179156 jPanel1 .update (g2 );
180-
181157 mainList .clear ();
182- linesList .clear ();
183158
184159 GetNums ();
185160 mainList .add (numArr .clone ());
161+
186162 start = System .nanoTime ();
187- quickSort (0 , numArr .length - 1 );
163+ //==============//
164+ srt .do_sort ();
165+ //==============//
188166 end = System .nanoTime ();
189- Draw .paintComponents (g2 );
167+
168+ Draw .paintComponents (g2 );
190169 SetNums ();
191-
192170 }//GEN-LAST:event_jButton1ActionPerformed
193171
194172 private void jButton2ActionPerformed (java .awt .event .ActionEvent evt ) {//GEN-FIRST:event_jButton2ActionPerformed
@@ -255,15 +233,15 @@ private void jTextField1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST
255233 }//GEN-LAST:event_jTextField1MouseClicked
256234
257235 private void jCheckBox2ActionPerformed (java .awt .event .ActionEvent evt ) {//GEN-FIRST:event_jCheckBox2ActionPerformed
258- draw = jCheckBox2 .isSelected ();
236+ // draw = jCheckBox2.isSelected();
259237 }//GEN-LAST:event_jCheckBox2ActionPerformed
260238
261239 private void formWindowStateChanged (java .awt .event .WindowEvent evt ) {//GEN-FIRST:event_formWindowStateChanged
262240 Draw .repaint ();
263241 }//GEN-LAST:event_formWindowStateChanged
264242
265243 private void formComponentShown (java .awt .event .ComponentEvent evt ) {//GEN-FIRST:event_formComponentShown
266- g2 = (Graphics2D ) jPanel1 .getGraphics ();
244+ // g2 = (Graphics2D) jPanel1.getGraphics();
267245 }//GEN-LAST:event_formComponentShown
268246
269247 private void GetNums (){
@@ -272,9 +250,13 @@ private void GetNums(){
272250 for (int i = 0 ; i < strArr .length ; i ++){
273251 numArr [i ] = Integer .parseInt (strArr [i ]);
274252 }
253+
254+ srt = new Sort (numArr , mainList );
275255 }
276256
277257 private void SetNums (){
258+ numArr = srt .call_back ();
259+
278260 String result = "" ;
279261
280262 for (int i = 0 ; i < numArr .length ; i ++)
@@ -284,7 +266,7 @@ private void SetNums(){
284266 //JOptionPane.showMessageDialog(null, "Время сортировки: " + (end - start)/1000 + " мс" );
285267 }
286268
287- int lev =0 ;
269+ /** int lev=0;
288270 private void quickSort(int left, int right) {
289271
290272 if (left >= right)
@@ -311,8 +293,6 @@ else if (j == cur)
311293 }
312294 }
313295
314- /* recursion */
315-
316296 if (left < cur-1 ){
317297 int[] arr = new int [cur-left+lev];
318298 int k=0;
@@ -355,8 +335,8 @@ else if (j == cur)
355335 quickSort(cur+1, right);
356336 }
357337 }
358-
359- /** private void DrawAll () {
338+
339+ private void DrawAll () {
360340 if(!draw) return;
361341
362342 for(int i = 0; i < mainList.size(); i++){
@@ -421,7 +401,6 @@ public void run() {
421401 private javax .swing .JButton jButton3 ;
422402 private javax .swing .JButton jButton4 ;
423403 private javax .swing .JCheckBox jCheckBox1 ;
424- private javax .swing .JCheckBox jCheckBox2 ;
425404 private javax .swing .JPanel jPanel1 ;
426405 private javax .swing .JTextField jTextField1 ;
427406 // End of variables declaration//GEN-END:variables
0 commit comments