Sadly I got it to work but not how I need it to work.
Heres what I got
/*
* Created on Dec 14, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.inventory;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import com.util.DragMouseAdapter;
/**
* @author zalexander
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class InvEquipPane extends JPanel{
private JLabel invHelmet = new JLabel();
private JLabel invArmor = new JLabel();
private JLabel invMainHand = new JLabel();
private JLabel invOffHand = new JLabel();
private JLabel invAcc1 = new JLabel();
private JLabel invAcc2 = new JLabel();
public InvEquipPane() {
//Set pane equipable slots
super(new GridLayout(6, 1));
//Define Equipable slots - Helmet, Armor, Main Hand, Off-Hand, Accessory 1, Accessory 2
invHelmet = new JLabel( "test", SwingConstants.LEADING );
invHelmet.setTransferHandler(new TransferHandler("text"));
invArmor = new JLabel( "", SwingConstants.LEADING );
invArmor.setTransferHandler(new TransferHandler("text"));
invMainHand = new JLabel( "", SwingConstants.LEADING );
invMainHand.setTransferHandler(new TransferHandler("text"));
invOffHand = new JLabel( "", SwingConstants.LEADING );
invOffHand.setTransferHandler(new TransferHandler("text"));
invAcc1 = new JLabel( "", SwingConstants.LEADING );
invAcc1.setTransferHandler(new TransferHandler("text"));
invAcc2 = new JLabel( "", SwingConstants.LEADING );
invAcc2.setTransferHandler(new TransferHandler("text"));
//Add Mouse Listeners to InvEquip Items
MouseListener listener = new DragMouseAdapter();
invHelmet.addMouseListener(listener);
invArmor.addMouseListener(listener);
invMainHand.addMouseListener(listener);
invOffHand.addMouseListener(listener);
invAcc1.addMouseListener(listener);
invAcc2.addMouseListener(listener);
//Create and Add the individual Equipable Item Drop and Drag boxes
JPanel invHelmetPanel = new JPanel(new GridLayout(1,1));
TitledBorder invHelmetPanelBorder = BorderFactory.createTitledBorder("Helmet");
invHelmetPanel.add(invHelmet);
invHelmetPanel.setBorder(invHelmetPanelBorder);
JPanel invArmorPanel = new JPanel(new GridLayout(1,1));
TitledBorder invArmorPanelBorder = BorderFactory.createTitledBorder("Armor");
invArmorPanel.add(invArmor);
invArmorPanel.setBorder(invArmorPanelBorder);
JPanel invMainHandPanel = new JPanel(new GridLayout(1,1));
TitledBorder invMainHandPanelBorder = BorderFactory.createTitledBorder("Main-Hand");
invMainHandPanel.add(invMainHand);
invMainHandPanel.setBorder(invMainHandPanelBorder);
JPanel invOffHandPanel = new JPanel(new GridLayout(1,1));
TitledBorder invOffHandPanelBorder = BorderFactory.createTitledBorder("Off-Hand");
invOffHandPanel.add(invOffHand);
invOffHandPanel.setBorder(invOffHandPanelBorder);
JPanel invAcc1Panel = new JPanel(new GridLayout(1,1));
TitledBorder invAcc1PanelBorder = BorderFactory.createTitledBorder("Accessory-1");
invAcc1Panel.add(invAcc1);
invAcc1Panel.setBorder(invAcc1PanelBorder);
JPanel invAcc2Panel = new JPanel(new GridLayout(1,1));
TitledBorder invAcc2PanelBorder = BorderFactory.createTitledBorder("Accessory-2");
invAcc2Panel.add(invAcc2);
invAcc2Panel.setBorder(invAcc2PanelBorder);
//Create the equipable plane to show in applet
JPanel invEquipPanel = new JPanel();
invEquipPanel.setLayout(new GridLayout(6,1));
TitledBorder invEquipPanelTitle = BorderFactory.createTitledBorder("Equipped");
//Add items to the plane
invEquipPanel.add(invHelmetPanel);
invEquipPanel.add(invArmorPanel);
invEquipPanel.add(invMainHandPanel);
invEquipPanel.add(invOffHandPanel);
invEquipPanel.add(invAcc1Panel);
invEquipPanel.add(invAcc2Panel);
invEquipPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
invEquipPanel.setPreferredSize(new Dimension(300, 480));
invEquipPanel.setBorder(invEquipPanelTitle);
setLayout(new BorderLayout());
add(invEquipPanel, BorderLayout.CENTER);
setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
}
}
along with
/*
* Created on Dec 15, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.util;
import java.awt.event.*;
import javax.swing.*;
/**
* @author zalexander
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
}
The problem Im having is that this works with the TransferHandler being a .COPY mode. When I change this to .MOVE I no longer can click the JLabel text and drag the item. Im sure im either missing something or don’t have something setup right. But I need to not have the text in the JLabel copy to where I have duplicates.
Any Ideas??