Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 合并排序逐步执行_Java_Event Handling_Buttonclick - Fatal编程技术网

Java 合并排序逐步执行

Java 合并排序逐步执行,java,event-handling,buttonclick,Java,Event Handling,Buttonclick,我试图一步一步地执行由按钮单击事件处理的合并排序。我无法执行此操作。我想要的是,当我点击一个名为“下一步”的按钮时,它会执行一个步骤,以此类推。 核心是我的主课。其中包括所有gui按钮等。 这是我的密码。 ` 包裹分拣机; 进口分拣机。核心; 导入java.awt.event.ActionEvent; 导入java.awt.event.ActionListener; 导入java.util.ArrayList; 导入java.util.List; 进口分拣机。核心$step; 导入javax.s

我试图一步一步地执行由按钮单击事件处理的合并排序。我无法执行此操作。我想要的是,当我点击一个名为“下一步”的按钮时,它会执行一个步骤,以此类推。 核心是我的主课。其中包括所有gui按钮等。 这是我的密码。 `

包裹分拣机;
进口分拣机。核心;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.ArrayList;
导入java.util.List;
进口分拣机。核心$step;
导入javax.swing.JOptionPane;
//包裹分拣机的参考等级:
//核心
公共类合并排序步骤
实现可运行的ActionListener
{
私有静态列表;
专用整数计数器=0;
私有整数长度_列表;
公共静态布尔步长=false;
线程排序Thread=null;
公共合并排序步骤()
{
//showMessageDialog(Core.form,“更改将应用于下一次排序”);
Core.btnNext.addActionListener(新的Core$step(this));
}
私有无效点击执行1(ActionEvent evt){
一步一步=真;
//sortingThread=新线程(此);
//sortingThread.resume();
//run();
}
静态无效访问$click(合并排序\u步骤x0,ActionEvent x1){
x0.单击执行的_1(x1);
}
公开募捐
{
//*****************名单
长度\列表=Core.length;
列表=新的数组列表(长度列表);
对于(int i=0;ipackage sorter;

import sorter.Core;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import sorter.Core$step;
import javax.swing.JOptionPane;


// Referenced classes of package sorter:
//            Core

public class MergeSort_Step
    implements Runnable, ActionListener 
{
    private static List<Integer> lists;   
    private int counter =0;
    private int length_list;
    public static boolean STEP_BY_STEP=false;
    Thread sortingThread=null;
    public MergeSort_Step()
    {
        //JOptionPane.showMessageDialog(Core.form, "Changes will apply on next sort");   
        Core.btnNext.addActionListener(new Core$step(this));


    }


private void clickperformed_1(ActionEvent evt) {

    STEP_BY_STEP = true;
    //sortingThread = new Thread (this);
    //sortingThread.resume();
    //run();
 }


static void access$click(MergeSort_Step x0, ActionEvent x1) {
    x0.clickperformed_1(x1);
 }
public void run()
{
    //*****************list
    length_list = Core.length;
    lists = new ArrayList<Integer>(length_list);
    for (int i = 0; i < length_list; i++) {
          lists.add(0);
        }
    //System.out.println("Results from file in list: " +lists.size());
    mergesort_list (0,length_list-1);
    JOptionPane.showMessageDialog(null, "Comparisions : "+ counter, "Notification!", 1);
    Core.toggleSorting();
}


  //***************list
    public void mergesort_list(int low, int high)
    {
        sortingThread = new Thread (this);
        if(low < high)
        {
            int middle = low + (high - low) / 2;
            mergesort_list(low, middle);
            mergesort_list(middle + 1, high);
            if (Core.STEP_BY_STEP == true || STEP_BY_STEP == true) 
            {
                merge_list(low, middle, high);
                //sortingThread.
                STEP_BY_STEP = false;
                Core.STEP_BY_STEP = false;
            }


    }
}



//***************list
private void merge_list(int low, int middle, int high)
{
    int i;
    for(i = low; i <= high; i++)
    {
        lists.set(i, Core.num.get(i)); //= (List<Integer>) Core.num.get(i);
        System.out.println("Current Array Status: " +lists.toString());
        Core.numStatus[i] = Core.DONE;
    }

    i = low;
    int j = middle + 1;
    int k = low;

    {
        while(i <= middle && j <= high) 
        {

            if( lists.get(i) <= lists.get(j))
            {
                Core.num.set(k, lists.get(i));
                Core.numStatus[i] = Core.DONE;
                Core.updateScreen();
                i++;
            } else
            {
                Core.num.set(k, lists.get(j));
                Core.numStatus[i] = Core.DONE;

                Core.updateScreen();
                j++;
            }
            k++;
            Core.numStatus[i] = Core.EVENT;
            Core.updateScreen();
            //Core.STEP_status = false;
            counter++;
        }
        while(i <= middle) 
        {
            Core.num.set(k, lists.get(i));
            Core.numStatus[i] = Core.EVENT;

            Core.updateScreen();

            k++;
            i++;
            Core.updateScreen();
            //Core.STEP_status = false;

        }

   }
}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

}


}`