Hey,... also ich hab mir eine kleine Klasse geschrieben, die Text aus Textfeldern austauscht also wenn man auf Textfeld 1 klickt und danach auf Textfeld 2 werden die Texte ausgetauscht. Ich habe das Ganze mit einem MouseListener realisiert. Die Frage ist, ob das so okay ist,... oder ein eher schlechter Weg, weil wenn will ichs gleich richtig machen
es sind keine anderen Textfelder in der GUI enthalten außer die, die auch wirklich ausgetauscht werden sollen.
Vorher habe ich das so versucht:
Adding Drag-and-Drop Support to a JLabel Component | Example Depot
problem dabei war, dass ich irgendwie nicht an die Ziel Komponente gekommen bin also der Drag/Drop in eine Richtung halt ging. Weiterhin habe ich versucht das über Release/Press zu realisieren aber da hatte ich das Problem dass die Quell/Source Komponente immer die gleiche war.
Vorher habe ich das so versucht:
Adding Drag-and-Drop Support to a JLabel Component | Example Depot
problem dabei war, dass ich irgendwie nicht an die Ziel Komponente gekommen bin also der Drag/Drop in eine Richtung halt ging. Weiterhin habe ich versucht das über Release/Press zu realisieren aber da hatte ich das Problem dass die Quell/Source Komponente immer die gleiche war.
Java:
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class PaarFrame extends JFrame implements MouseListener{
private static final long serialVersionUID = 1L;
private JTextField txtfield;
public PaarFrame(){
this.setSize(500, 500);
this.setTitle("PAAR Zuweisung");
init();
}
private void init() {
// TODO Auto-generated method stub
JPanel pnl=new JPanel();
pnl.setLayout(new GridLayout(5,5));
//Erstellung der TextFelder
for(int i=0;i<10;i++){
JTextField txt=new JTextField();
txt.setText("TEXT "+i);
txt.setEditable(false);
txt.addMouseListener(this);
pnl.add(txt);
}
this.add(pnl);
this.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getComponent() instanceof JTextField){
JTextField press=(JTextField) arg0.getComponent();
//Erster Klick
if(txtfield==null){
txtfield=press;
txtfield.setEnabled(false);
}else if(txtfield==press){
System.out.println("GLeich");
}else{
//Zweiter Klick auf anderes TextField
String str=press.getText();
press.setText(txtfield.getText());
txtfield.setText(str);
txtfield.setEnabled(true);
txtfield=null;
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public static void main(String[] args){
new PaarFrame();
}
}