Ciao ragazzi ho un problema, ho una classe che è stato implementata usando 4 scrollbar, io vorrei sostituirle con le JScrollBar ma il metodo che posto non funziona correttamente. Nella versione con le scrollbar se sposto la scroll del brightness quella del contrast sta ferma mentre nella versione con le JScrollBar se sposto la brightness si sposta anche l'altra. Sapete aiutarmi? grazie

codice:
    GridBagLayout gridbag;
    GridBagConstraints c;
    int y = 0;
  
    JPanel panel, tPanel;
    Scrollbar minSlider, maxSlider, contrastSlider, brightnessSlider;
    int sliderRange = 256;
     
    double min, max;
    double previousMin, previousMax;
    double defaultMin, defaultMax;
    int previousImageID;
    int previousType;
    int previousSlice = 1;
    Object previousSnapshot;
    int contrast, brightness;
    boolean RGBImage;
    int channels = 7; // RGB
    Choice choice;
    int autoThreshold;
    static final int MIN=5, MAX=6, BRIGHTNESS=7, CONTRAST=8;
    int minSliderValue=-1, maxSliderValue=-1, brightnessValue=-1, contrastValue=-1;

    Thread thread;

    /**
     * Creates new form ContrastBrightness
     */
    public ContrastBrightness() {
        initComponents();
            //layout
        gridbag = new GridBagLayout();
        c = new GridBagConstraints();
        setLayout(gridbag);
		
    	// min slider	
        minSlider = new Scrollbar(Scrollbar.HORIZONTAL, sliderRange/2, 1, 0, sliderRange);
        c.gridy = y++;
  //      c.insets = new Insets(2, 10, 0, 10);
        gridbag.setConstraints(minSlider, c);
        add(minSlider);
	minSlider.addAdjustmentListener(this);
	minSlider.setUnitIncrement(1);
	minSlider.setFocusable(false); // prevents blinking on Windows
       
	// max slider
        maxSlider = new Scrollbar(Scrollbar.HORIZONTAL, sliderRange/2, 1, 0, sliderRange);
        c.gridy = y++;
    //    c.insets = new Insets(2, 10, 0, 10);
        gridbag.setConstraints(maxSlider, c);
        add(maxSlider);
	maxSlider.addAdjustmentListener(this);	
        maxSlider.setUnitIncrement(1);
        maxSlider.setFocusable(false);
        
        // brightness slider
        brightnessSlider = new Scrollbar(Scrollbar.HORIZONTAL, sliderRange/2, 1, 0, sliderRange);
        c.gridy = y++;
	//c.insets = new Insets(5, 10, 0, 10);
        gridbag.setConstraints(brightnessSlider, c);
        add(brightnessSlider);
	brightnessSlider.addAdjustmentListener(this);		
        brightnessSlider.setUnitIncrement(1);
        brightnessSlider.setFocusable(false);     
        
        // contrast slider
        contrastSlider = new Scrollbar(Scrollbar.HORIZONTAL, sliderRange/2, 1, 0, sliderRange);
        c.gridy = y++;
      //  c.insets = new Insets(5, 10, 0, 10);
        gridbag.setConstraints(contrastSlider, c);
        add(contrastSlider);
	contrastSlider.addAdjustmentListener(this);		
        contrastSlider.setUnitIncrement(1);
        contrastSlider.setFocusable(false);

        thread = new Thread(this, "ContrastAdjuster");
	//thread.setPriority(thread.getPriority()-1);
	thread.start();
	setup();
    }


public void run() {
            System.out.println("Contrast run");
            while(true){
			synchronized(this) {
				try {wait();}
				catch(InterruptedException e) {}
			}
			doUpdate();
            }
	}


public synchronized void adjustmentValueChanged(AdjustmentEvent e) {
        //controlla ci sia finestra!!!!!!!!!!!!!!!!!
        //verifico quale slider ho spostato
      Object source = e.getSource();
        if (source==minSlider)	{
             System.out.println("--------------------------------------Contrast minSlider");
               minSliderValue = minSlider.getValue();}
        else if (source==maxSlider){
             System.out.println("--------------------------------------Contrast maxSlider");
                   maxSliderValue = maxSlider.getValue();}
        else if (source==contrastSlider){
             System.out.println("--------------------------------------Contrast contrastSlider");
                contrastValue = contrastSlider.getValue();}
        else  if (source==brightnessSlider){
                brightnessValue = brightnessSlider.getValue();
                System.out.println("--------------------------------------Contrast brightnessSlider");
                 System.out.println("-*****************----"+brightnessValue);
        }
        notify();
    }   
    
    void doUpdate() {   System.out.println("Contrast DOUPDATE");
    
        MyImagePlus imp;
        ImageProcessor ip;
        int action;
        int minvalue = minSliderValue;
        int maxvalue = maxSliderValue;
        int bvalue = brightnessValue;
        int cvalue = contrastValue;

        if (minSliderValue>=0) action = MIN;  
        else if (maxSliderValue>=0) action = MAX;
        else if (brightnessValue>=0) action = BRIGHTNESS;
        else if (contrastValue>=0) action = CONTRAST;
        else return;
        minSliderValue = maxSliderValue = brightnessValue = contrastValue = -1;

        imp = WindowManagerCCD.getCurrentWindow().getCanvas().getImage();
        if (imp==null) {
                System.out.println("No image");
                return;
        }
        ip = setup(imp);
        System.out.println("ip"+ip);
        if (RGBImage && !imp.lock())
                {imp=null; return;}
        switch (action) {
                case MIN: adjustMin(imp, ip, minvalue); break;
         	case MAX: adjustMax(imp, ip, maxvalue); break;
                 case BRIGHTNESS: adjustBrightness(imp, ip, bvalue); break;
                 case CONTRAST: adjustContrast(imp, ip, cvalue); break;
         }
         updatePlot();
         updateLabels(imp);

         imp.updateChannelAndDraw();
         if (RGBImage)
                 imp.unlock();
    }
void updateScrollBars(String sb, boolean newRange) {
   		if ((sb==null) || (!sb.equals("contrastSlider"))) {
			double mid = sliderRange/2;
			double c = ((defaultMax-defaultMin)/(max-min))*mid;
			if (c>mid)
				c = sliderRange - ((max-min)/(defaultMax-defaultMin))*mid;
			contrast = (int)c;
			if (contrastSlider!=null) {
				if (newRange)
					contrastSlider.setValues(contrast, 1, 0,  sliderRange);
				else
					contrastSlider.setValue(contrast);
			}
		}
		if ((sb==null) || (!sb.equals("brightnessSlider"))) {
			double level = min + (max-min)/2.0;
			double normalizedLevel = 1.0 - (level - defaultMin)/(defaultMax-defaultMin);
			brightness = (int)(normalizedLevel*sliderRange);
			if (newRange)
				brightnessSlider.setValues(brightness, 1, 0,  sliderRange);
			else
				brightnessSlider.setValue(brightness);
		}
		if ((!minSlider.equals(null)) && ((sb==null) ||(!sb.equals("minSlider")))){
                    if (newRange)
				minSlider.setValues(scaleDown(min), 1, 0,  sliderRange);
			else
				minSlider.setValue(scaleDown(min));
		}
		if ((!maxSlider.equals(null)) && ((sb==null) || (!sb.equals("maxSlider")))){
			if (newRange)
				maxSlider.setValues(scaleDown(max), 1, 0,  sliderRange);
			else
				maxSlider.setValue(scaleDown(max));
		}
	}