This week's book giveaway is in the JavaScript forum.
We're giving away four copies of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js and have Paul Jensen on-line!
See this thread for details.
Win a copy of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js this week in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Facing with Drag and Drop issues  RSS feed

Rohit Bhagwat
Ranch Hand
Posts: 205
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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

* 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.addMouseListener(new DragMouseAdapter());
JPanel tfpanel = new JPanel(new GridLayout(1,1));
TitledBorder t1 = BorderFactory.createTitledBorder(
"JTextField: drag and drop is enabled");

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

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


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");

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

//Display the window.

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() {
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!