Portal > Foren > Java > Allgemeine Java-Programmierung > JEditorPane -> Text formatieren
Antwort
 
Themen-Optionen
Alt 15.12.2006, 14:02 Nach oben    #1
Benutzer
 
Registriert seit: 01.02.2005
Beiträge: 64
Standard JEditorPane -> Text formatieren

Hallo,

ich habe folgendes Problem: ich habe bisher eine JEditorPane nur dafür genutzt, um in mein Programm eine HTML-Hilfe o.ä. einzubauen.

Nun brauche ich sie, um einen Text vom User formatieren zu lassen. Er soll also beliebige Textteile markieren können, und sie z.b. Fett formatieren.
Ich weiß, wie ich den kompletten Text fett formatiere, habe aber leider keine Ahnung, wie ich das auf die Auswahl begrenze.

Vorerst will ich mich auf folgendes Beschränken:
Fett, Kursiv, Unterstrichen.

Später soll auch noch die Schriftgröße und (vielleicht noch) das Einfügen von Tabellen und Bildern stehen.

[Edit]Der eingegebene und formatierte Text soll später als HTML gespeichert werden[/edit]

Wäre schön, wenn mir jemand einen Tipp geben kann!
__________________
  1. My software never has bugs. It just develops random features!
  2. Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for 'still doesn't work.'
  3. There are two ways to write error-free programs. Only the third one works.

Geändert von Binary (15.12.2006 um 14:05 Uhr). Grund: siehe [edit]...[/edit] -> Text vergessen
Binary ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 15:36 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.108
Standard

Fett, Kursiv, Unterstrichen, usw. unterstützt JEditorPane schon von Haus aus.
Bin mir aber gerade nicht ganz sicher, wie man am einfachsten an die Actions kommt...

Theoretisch müsste folgendes funktionieren:
Code:
Action makeBold = editorPane.getActionMap().get(HTMLEditorKit.BOLD_ACTION);
Ansonsten könntest du folgendes tun:
Code:
Action makeBold;
for(Action a : editorPane.getActions()) {
    if(a.getValue(Action.NAME) == HTMLEditorKit.BOLD_ACTION) {
        makeBold = a;
        break;
    }
}
pago ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 16:36 Nach oben    #3
Benutzer
 
Registriert seit: 01.02.2005
Beiträge: 64
Standard

Ich bin grade noch auf Arbeit und kann das nicht probieren, aber mit Hilfe der Recherche, die ich bisher gemacht hab und deiner Antwort komm ich auf das hier:

PHP-Code:
JEditorPane pane = new JEditorPane();
Hashtable actionTable;
 
//etc 
 
Constructor()
{
     
HTMLDocument doc = (HTMLDocumentpane.getDocument();
     
initActionTable();
     
//...
 
     //Hier der Button für Kursiv
     
JButton italicButton = new JButton(new ImageIcon("images/italic.gif"));
     
italicButton.addActionListener((Action)actionTable.get("font-italic"));
     
//Button hinzufügen
 
 
}
 
private 
void initActionTable() 
{
  
actionTable = new Hashtable();
  
StyledEditorKit editorKit = (StyledEditorKitpane.getEditorKit();
  
Action[] actions editorKit.getActions();
  for (
int i=0actions.lengthi++) 
  {
     
Action action actions[i];
     
actionTable.put(action.getValue(Action.NAME),action);
  } 

Aber wie mach ich dem jetzt klar, dass das nur der markierte Text ist??
So wie ich das verstehe steht da ja bisher noch nix von getSelectionStart() / getSelectionEnd(), oder macht der das automatisch?
__________________
  1. My software never has bugs. It just develops random features!
  2. Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for 'still doesn't work.'
  3. There are two ways to write error-free programs. Only the third one works.
Binary ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 18:04 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.108
Standard

Das macht der automatisch. Hatte mal angefangen, nen Richtext-Editor zu schreiben und der Code sah deinem extrem ähnlich.
pago ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2006, 18:18 Nach oben    #5
Benutzer
 
Registriert seit: 01.02.2005
Beiträge: 64
Standard

Gut, das probier ich gleich heute abend/ morgen früh aus^^

wenn ja, wäre ja das schlimmste schon überstanden! (zumindest von dem, was ich im ersten Schritt vorhabe)
__________________
  1. My software never has bugs. It just develops random features!
  2. Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for 'still doesn't work.'
  3. There are two ways to write error-free programs. Only the third one works.
Binary ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
TextArea -> Farbiger Text Xean Desktop-Applikationen und Grafik 3 06.10.2006 23:55
null-Layout, splitPane und scrollPane -> scrollPane "scrollt" nicht risa Desktop-Applikationen und Grafik 4 28.05.2006 20:47
Bild im Text mit css? code5 HTML, XML und CSS 11 20.12.2005 13:15
JEditorPane Text hinzufügen ohne ganzes Dokument neu einzuladen milanwb Desktop-Applikationen und Grafik 13 15.05.2005 16:01
Änderung der Textfarbe im JEditorPane mabe2k Desktop-Applikationen und Grafik 1 28.08.2004 23:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:07 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44