private void shiftPaletteBackward() {

        if(color_cycling_location > 0) {
            color_cycling_location--;

            if(color_choice == palette.length - 1) {
                temp_color_cycling_location = color_cycling_location;
            }
        }
        else {
            return;
        }

        updateColorPalettesMenu();

        setOptions(false);

        progress.setValue(0);

        resetImage();

        backup_orbit = null;

        whole_image_done = false;

        if(d3) {
            Arrays.fill(((DataBufferInt)image.getRaster().getDataBuffer()).getData(), 0, image_size * image_size, Color.BLACK.getRGB());
        }

        if(filters[ANTIALIASING] || (domain_coloring && use_palette_domain_coloring)) {
            if(julia_map) {
                createThreadsJuliaMap();
            }
            else {
                createThreads();
            }

            calculation_time = System.currentTimeMillis();

            if(julia_map) {
                startThreads(julia_grid_first_dimension);
            }
            else {
                startThreads(n);
            }
        }
        else {
            if(d3) {
                createThreads();
            }
            else {
                createThreadsPaletteAndFilter();
            }

            calculation_time = System.currentTimeMillis();

            startThreads(n);
        }

    }