Ultima modifica:
Su un mio programma scritto in java, sto gestendo la ClipBoard di sistema, ma quest'ultimo mi da problemi, nel codice del mio programma la funzione taglia mi funziona, ma incolla mi da problemi, nel senso che, non so perchè, ma mi incolla quello che ho tagliato precedentemente con comando taglia, cosa strana, visto che, nella clipboard di sistema, da quello che ho visto c'è quello che ho tagliato.
La mia domanda è: come mai mi incolla il testo precedentemente tagliato? ma soprattutto, da dove lo prende? visto che negli appunti c'è il testo tagliato attualmente?
Oltre a queste domande, ho riprovato, in un progetto separato, a gestire solamente la clipboard di sistema, il codice del file è questo:
Ma a quando pare, credo di aver sbagliato qualcosa, ma mi da più problemi di prima, ovvero, ora mi funziona solo il pulsante taglia, come posso risolvere?
La mia domanda è: come mai mi incolla il testo precedentemente tagliato? ma soprattutto, da dove lo prende? visto che negli appunti c'è il testo tagliato attualmente?
Oltre a queste domande, ho riprovato, in un progetto separato, a gestire solamente la clipboard di sistema, il codice del file è questo:
Codice:
[FONT=tahoma][SIZE=2]import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import javax.swing.*;
class JP extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public Toolkit systemToolkit = Toolkit.getDefaultToolkit();
public Clipboard ClipBoard = systemToolkit.getSystemClipboard();
public Transferable clipboardContents = ClipBoard.getContents(null);
public TransferHandler handler = null;
public JTextArea jtextarea = null;
public JP() {
setSize(1000, 1000);
setLayout(new GridLayout(2,1));
setVisible(true);
JButton jbutton = new JButton("Cut");
jbutton.addActionListener(this);
JButton jbutton1 = new JButton("Copy");
JButton jbutton2 = new JButton("Paste");
JPanel first = new JPanel(new FlowLayout());
first.add(jbutton);
first.add(jbutton1);
first.add(jbutton2);
add(first);
jtextarea = new JTextArea();
add(jtextarea);
}
public void actionPerformed(ActionEvent evt) {
String cmd = evt.getActionCommand();
if (cmd.equals("Cut")) {
try {
handler = jtextarea.getTransferHandler();
handler.exportToClipboard(jtextarea, ClipBoard, TransferHandler.MOVE);
}catch (Exception ex) {
ex.printStackTrace();
}
}else if(cmd.equals("Copy")) {
try {
handler = jtextarea.getTransferHandler();
handler.exportToClipboard(jtextarea, ClipBoard, TransferHandler.COPY);
}catch (Exception ex) {
ex.printStackTrace();
}
}else if(cmd.equals("Paste")) {
try {
if (clipboardContents != null && clipboardContents.isDataFlavorSupported(DataFlavor.stringFlavor)) {
handler = jtextarea.getTransferHandler();
handler.importData(jtextarea, clipboardContents);
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
public class cpManager {
public static void main(String[] args) {
new JP();
}
}[/SIZE][/FONT]
Ma a quando pare, credo di aver sbagliato qualcosa, ma mi da più problemi di prima, ovvero, ora mi funziona solo il pulsante taglia, come posso risolvere?