N
narbida
Gast
Guten Morgen Javaexperte 
bin gestern ganze Tag im PC um dieses Problem zu lösen aber leider ohne zweck
kann jemand mir helfen.ich bin sehr dankbar dafür.
also mein Problem ist:
wenn ich die Button ziehe dann wird die Methode mousePressed gelesen
und wenn ich mouse von Button lasse wird die Methode mouseRelease nicht gelesen.
kann jemand mir bitte sagen warum.wie kann man das lösen?
bin gestern ganze Tag im PC um dieses Problem zu lösen aber leider ohne zweck
kann jemand mir helfen.ich bin sehr dankbar dafür.
also mein Problem ist:
wenn ich die Button ziehe dann wird die Methode mousePressed gelesen
und wenn ich mouse von Button lasse wird die Methode mouseRelease nicht gelesen.
kann jemand mir bitte sagen warum.wie kann man das lösen?
Code:
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);
}
public void mouseReleased(MouseEvent e) {
System.out.println("Released ok");
}
}
Code:
package dnd;
/*
* 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;
JButton button;
public LabelDnD() {
super(new GridLayout(2, 1));
textField = new JTextField(40);
textField.setDragEnabled(true);
JPanel tfpanel = new JPanel(new GridLayout(1,1));
TitledBorder t1 = BorderFactory.createTitledBorder(
"JTextField: drag and drop is enabled");
tfpanel.add(textField);
tfpanel.setBorder(t1);
button = new JButton("I'm a Button!");
button.setTransferHandler(new TransferHandler("text"));
MouseListener listener = new DragMouseAdapter();
button.addMouseListener(listener);
JPanel lpanel = new JPanel(new GridLayout(1,1));
TitledBorder t2 = BorderFactory.createTitledBorder(
"JLabel: drag from or drop to this label");
lpanel.add(button);
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);
}
public void mouseReleased(MouseEvent e) {
System.out.println("Released ok");
}
}
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();
}
});
}
}