Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

variable in a drag and drop method not activating.

$
0
0
There are 2 sets of 4 buttons being created.

The ImageIcon of the 1st set of buttons are to be dragged onto the 2nd set of buttons.

The boolean enab variable is for determining if the 2nd set of 4 buttons are enabled or not.
I initially set the boolean to false, only when the imageicon from the 1st set of buttons are dragged over, the enab value will change to true.

However, the 2nd set of buttons remain disabled while and after I dragged the images over to it.

Any help is appreciated. :hang:/>

    private boolean enab = false;

    // creates 4 buttons   
        for(int a=0; a<4; a++){

            button[a] = new JButton(new ImageIcon()); 
            TransferHandler transfer = new TransferHandler("icon");
            button[a].setTransferHandler(transfer);
             
            button[a].addMouseListener(new MouseAdapter(){
                public void mousePressed(MouseEvent e){
                JButton button = (JButton)e.getSource();
                TransferHandler handle = button.getTransferHandler();
                handle.exportAsDrag(button, e, TransferHandler.COPY);
                name1 = e.getComponent().getName();
                System.out.println(name1);
                enab = true;
                System.out.println("enabled0:" + enab); // prints true
                }       

            }
        }
    // adds the 4 buttons to panel
    leftg.add(button[a]);

    // creates another 4 buttons for stuff to be dragged to
    for(int b=0; b<4; b++){
            
         rg[b] = new JButton();
         id2 += Integer.toString(++cc2);
         // unique name for each button as an ID
         rg[b].setName(id2); 
         TransferHandler transfer1 = new TransferHandler("icon");
         rg[b].setTransferHandler(transfer1);
         rg[b].setEnabled(enab);
         System.out.println("enabled00:" + enab); // prints false 
                 

         ChangeListener clistener = new ChangeListener(){                 
             public void stateChanged(ChangeEvent ce) {
                 
                 JButton source = (JButton)ce.getSource();
                 ButtonModel mod = source.getModel();
                 System.out.println("enabled1:" + enab); // no output

                   if (mod.isEnabled()){
                    System.out.println("enabled2:" + enab); // no output
                        if(name1 == source.getName()){

                        }
                        else{
                            source.setIcon(null);
                        }
                   }  
                   else{        
                   }
         };
         };
    rg[b].addChangeListener(clistener);
    // adds the 4 buttons to panel
    rightg.add(rg[b]);
    }        

Viewing all articles
Browse latest Browse all 51036

Trending Articles