aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes Facing with Drag and Drop issues Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Facing with Drag and Drop issues" Watch "Facing with Drag and Drop issues" New topic
Author

Facing with Drag and Drop issues

Rohit Bhagwat
Ranch Hand

Joined: Dec 19, 2004
Posts: 205
Hello sir, madam

I got the following sample code from net. The functionality is very similar to what I want in my project. However I am facing one problem with the following code. When I drag and drop the text from one textfield to other the focus should go in the textfield in which I have dropped the text. This is not happening in the following program. The focus is maintained in the textfield from where I dragged the text. Can anyone please suggest some solution to my problem.

Waiting for your replies..

Thanks and Regards
Rohit.


/*
* LabelDnD.java requires no other files.
*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class LabelDnD extends JPanel {
JTextField textField;
JTextField label;

public LabelDnD() {
super(new GridLayout(2, 1));
textField = new JTextField(40);
textField.setDragEnabled(true);
textField.addMouseListener(new DragMouseAdapter());
JPanel tfpanel = new JPanel(new GridLayout(1,1));
TitledBorder t1 = BorderFactory.createTitledBorder(
"JTextField: drag and drop is enabled");
tfpanel.add(textField);
tfpanel.setBorder(t1);

label = new JTextField("I'm a Label!");
label.setDragEnabled(true);
//label.setTransferHandler(new TransferHandler("text"));

MouseListener listener = new DragMouseAdapter();
label.addMouseListener(listener);
JPanel lpanel = new JPanel(new GridLayout(1,1));
TitledBorder t2 = BorderFactory.createTitledBorder(
"JLabel: drag from or drop to this label");
lpanel.add(label);
lpanel.setBorder(t2);

add(tfpanel);
add(lpanel);
setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}

private class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
}

/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("LabelDnD");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
JComponent newContentPane = new LabelDnD();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);

//Display the window.
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Facing with Drag and Drop issues