Hallo,
ich habe einen jEditorPane mit HTML-Darstellung. Nun möchte ich per copy&paste die Formatierungen behalten. Allerdings wird der in HTML formatierte Text in dem jEditorPane nur ohne Formatierungen in die Zwischenablage kopiert. Weiß jemand, wie ich die Formatierungen mit übernehmen kann?
Hier der Quelltext:
ich habe einen jEditorPane mit HTML-Darstellung. Nun möchte ich per copy&paste die Formatierungen behalten. Allerdings wird der in HTML formatierte Text in dem jEditorPane nur ohne Formatierungen in die Zwischenablage kopiert. Weiß jemand, wie ich die Formatierungen mit übernehmen kann?
Hier der Quelltext:
Java:
jEditorPaneEntry.setTransferHandler(new EntryStringTransferHandler() {
@Override protected String exportString(JComponent c) {
// retrieve textselection
String selectedText = jEditorPaneEntry.getSelectedText();
// if no text selected, quit
if (null==selectedText) return null;
// return results
return selectedText.toString().trim();
}
@Override protected boolean importString(JComponent c, String str) {
return false;
}
@Override protected void cleanup(JComponent c, boolean remove) {
}
});
Java:
public abstract class EntryStringTransferHandler extends TransferHandler {
protected abstract String exportString(JComponent c);
protected abstract boolean importString(JComponent c, String str);
protected abstract void cleanup(JComponent c, boolean remove);
@Override
protected Transferable createTransferable(JComponent c) {
return new StringSelection(exportString(c));
}
@Override
public int getSourceActions(JComponent c) {
return COPY;
}
@Override
public boolean importData(JComponent c, Transferable t) {
if (canImport(c, t.getTransferDataFlavors())) {
try {
String str = (String)t.getTransferData(DataFlavor.stringFlavor);
return importString(c, str);
// return true;
} catch (UnsupportedFlavorException ufe) {
CConstants.zknlogger.log(Level.WARNING,ufe.getLocalizedMessage());
} catch (IOException ioe) {
CConstants.zknlogger.log(Level.WARNING,ioe.getLocalizedMessage());
}
}
return false;
}
@Override
protected void exportDone(JComponent c, Transferable data, int action) {
cleanup(c, action == MOVE);
}
@Override
public boolean canImport(JComponent c, DataFlavor[] flavors) {
if (c.getName().equals("jTableTitles")) return false;
if (c.getName().equals("jTableAuthors")) return false;
if (c.getName().equals("jTableKeywords")) return false;
if (c.getName().equals("jTableAttachments")) return false;
for (int i = 0; i < flavors.length; i++) {
if (DataFlavor.stringFlavor.equals(flavors[i])) {
return true;
}
}
return false;
}
}