R
RobertM
Gast
Hallo zusammen,
hoffe es kann mir hier jemand weiterhelfen. Ich verwende einen Transferhandler (siehe Code) um Buttons in einem Panel mittels DnD zu verschieben. Das funktioniert auch ganz gut im Hauptfenster (JFrame) meines Programme. Sobald ich das ganze aber in einem modalen JDialog verwende klappt es nicht mehr. Das MousePressed Event wird zwar noch abgefangen und abgearbeitet aber es tut sich nichts. Bin für jede Idee dankbar.
BG
Robert
hoffe es kann mir hier jemand weiterhelfen. Ich verwende einen Transferhandler (siehe Code) um Buttons in einem Panel mittels DnD zu verschieben. Das funktioniert auch ganz gut im Hauptfenster (JFrame) meines Programme. Sobald ich das ganze aber in einem modalen JDialog verwende klappt es nicht mehr. Das MousePressed Event wird zwar noch abgefangen und abgearbeitet aber es tut sich nichts. Bin für jede Idee dankbar.
BG
Robert
Java:
public class TouchButton extends JButton {
...
String s_ID = "-1";
public String getS_ID() {
return s_ID;
}
//Drop und Klick Event Einsprung!!!!!
public void setS_ID(String DnD_source_ID) {
if (Integer.valueOf(DnD_source_ID)!=data.ID)//Drop event
{ parentPanel.parentWindow.config.SQL_commands.buttons.move_btn(Integer.valueOf(DnD_source_ID), parentPanel.getVor_ID(), data.Position);
parentPanel.button_move();
}
else//Klick Event
{ parentPanel.add_edit_button(this.data, this);
}
}
....
public TouchButton(TouchButtonPanel btn_parentWindow, SQLCommands.buttonData btn_data, int btn_font_size)
{ parentPanel = btn_parentWindow;
set_parameters(btn_data);
this.setTransferHandler(new TransferHandler("s_ID"));
this.addMouseListener(new DragMouseAdapter());
if (btn_font_size > 0 && btn_font_size < 6)
{ font_size = btn_font_size;
}
}
.....
private class DragMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
if (parentPanel.parentWindow.is_in_config_mode())
{ if (e.getSource() instanceof TouchButton)
{ JComponent c = (JComponent) e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
}
}
}
}
}