Sagen wir, ich habe diesen Code:
public static void main(final String [] args)
{
final JFrame frame = new JFrame("Display Keyword Panel");
final JPanel panel = new JPanel(new BorderLayout());
JTextField text1 = new JTextField("This is the first text field");
text1.setBorder(null);
text1.setOpaque(false);
text1.setEditable(false);
JTextField text2 = new JTextField("This is the second text field");
text2.setBorder(null);
text2.setOpaque(false);
text2.setEditable(false);
panel.add(text1, BorderLayout.NORTH);
panel.add(text2, BorderLayout.SOUTH);
frame.setLayout(new BorderLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.setLocation(450, 400);
frame.pack();
frame.setVisible(true);
}
Ich möchte Text über den beiden Feldern text1 und text2 auswählen, damit ich beide gleichzeitig kopieren kann. Aber wenn ich die Anwendung ausführe, kann ich immer nur den Text aus einem Textfeld auswählen. Wie kann ich es so einrichten, dass ich Text in allen Textfeldern auswählen kann, die ich in meinem Programm habe?
0 Stimmen
@izuriel nein, ich möchte, dass sich die beiden Felder so verhalten, als wären sie ein einziges Textfeld, in dem ich den Text abwechselnd zwischen den beiden auswählen kann, ohne dass ich mir Sorgen machen muss, dass die Grenzen des einen Textfeldes im Weg sind.
1 Stimmen
Die Antwort von Eng.Fouad hat das Problem gelöst, wenn ich das richtig verstanden habe. Ich habe das Gleiche getan wie er (er war schneller als ich) und als ich auf die Schaltfläche "Kopieren" drückte, wurden beide Textteile übernommen - das ist wirklich ganz einfach.
0 Stimmen
@izuriel ja, aber das Problem ist, dass es in meiner Anwendung wirklich keinen Sinn macht, eine Kopierschaltfläche irgendwo in der Nähe des Textes zu haben. Ich denke, das Problem ist, dass ich in dieser Situation einfach nicht das tun kann, was ich tun möchte.
0 Stimmen
Es muss nicht unbedingt eine Schaltfläche sein, es geht um die Funktionalität. Wenn Sie die Funktion von "Ctrl-C", "Ctrl-X" und "Ctrl-V" in all Ihren Textfeldern ändern und die richtige Funktionalität implementieren, sollten Sie gut zu gehen. Ich werde ein kleines Stückchen Code posten, das mir bei einem Projekt von mir mit speziellem Kopieren/Einfügen geholfen hat.
0 Stimmen
Ok, vielen Dank, ich habe gar nicht daran gedacht, die Strg-C, Strg-X-Funktionalität zu ändern.
0 Stimmen
Nachdem ich ihn mir angesehen habe (was ich schon eine Weile nicht mehr getan habe), ist es nicht wirklich relevant, den Code zu posten. Sie sollten sich jedoch die vererbten
paste()
,copy()
ycut()
Methoden inJTextField
.0 Stimmen
Ich habe eine Antwort für die Informationen gepostet und ein Beispiel für die Erstellung Ihrer eigenen KeyBinding gegeben.