trilos021 Δημοσ. 7 Δεκεμβρίου 2010 Δημοσ. 7 Δεκεμβρίου 2010 Καλησπέρα.Έχω φτιάξει ένα JTextArea (το οποίο το ονομαζω keimenografos) και ένα κουμπί το οποίο θέλω να κάνει cut το κείμενο που θα επιλέγεται απο το textarea.έχω φτιάξει αυτό >private void cutActionPerformed(java.awt.event.ActionEvent evt) { //cut command String selection=keimenografos.getSelectedText(); if(selection==null){ return; } StringSelection clipString=new StringSelection(selection); clipboard.setContents((Transferable)clipString,(ClipboardOwner)clipString); keimenografos.replaceSelection(""); // TODO add your handling code here: } στο IDE που χρησιμοποιώ (netbeans) δε μου δίχνει κάποιο σφάλμα και έτσι τρέχω κανονικά το πρόγραμμα.Το πρόβλημα δημιουργείται όταν κάνω κλικ στο κουμπί cut.Το error που μου βγάζει είναι αυτό >Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: texteditor.resources.StringSelection cannot be cast to java.awt.datatransfer.Transferable επίσης οι βιβλιοθήκες που έχω φορτώσει ΓΙΑ ΟΛΟ το πρόγραμμα είναι >import java.io.*; import java.awt.event.*; import java.io.IOException; import javax.swing.JFileChooser; import java.awt.datatransfer.*; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.ClipboardOwner; αλλα και στο πρόγραμμα (texteditor) έχω προσθέσει αυτό >public class texteditor extends javax.swing.JFrame { private Clipboard clipboard = getToolkit().getSystemClipboard(); καμιά ιδέα για το τι μπορεί να φταίει?
virxen75 Δημοσ. 7 Δεκεμβρίου 2010 Δημοσ. 7 Δεκεμβρίου 2010 κάνε τις παρακάτω διορθώσεις αρχείο StringSelection.java =============================== > package texteditor.resources; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; class StringSelection implements Transferable,ClipboardOwner { static public DataFlavor stringFlavor; private DataFlavor [] supportedFlavors = {stringFlavor}; private String selection; public StringSelection(String sel) { this.selection=sel; try { stringFlavor = new DataFlavor (Class.forName ("java.lang.String"), "String"); } catch (ClassNotFoundException e) { System.out.println("error="+e); } } public DataFlavor[] getTransferDataFlavors() { return (supportedFlavors); } public boolean isDataFlavorSupported(DataFlavor flavor) { return (flavor.equals (stringFlavor)); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (flavor.equals (stringFlavor)) return (selection); else throw new UnsupportedFlavorException (stringFlavor); } public void lostOwnership(Clipboard clipboard, Transferable contents) { System.out.println ("Lost ownership"); } } αρχείο texteditor.java ========================= a) στην συνάρτηση cutActionPerformed > ........ StringSelection clipString=new StringSelection(selection); clipboard.setContents(clipString,this); keimenografos.replaceSelection(""); ......... β) >public class texteditor extends javax.swing.JFrame implements ClipboardOwner{
trilos021 Δημοσ. 7 Δεκεμβρίου 2010 Μέλος Δημοσ. 7 Δεκεμβρίου 2010 να φανταστώ τώρα μπορώ να χρησιμοποιήσω και τις συναρτήσεις copy & paste χώρίς κάποια αλλαγή στο StringSelection.java? υ.γ χίλια ευχαριστώ
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.