[java]JButton actie in JdbEditorPane

Pagina: 1
Acties:
  • 108 views sinds 30-01-2008

  • timovd
  • Registratie: Maart 2002
  • Laatst online: 18:47

timovd

Voorsprong door techniek

Topicstarter
Voor een CMS in Java wil ik data wegschrijven naar een database. Hiervoor wil ik ook heel eenvoudig opmaak toevoegen. Mijn idee was om buttons te maken(B, I, U, br, p) en na het klikken de content toe te voegen aan het editorpane. Hoe kan ik deze knoppen bovenstaande functionaliteit geven?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Een JEditorPane heeft een methode replaceSelection(String content), daarmee zou je bijvoorbeeld <b></b> tags om de geselecteerde tekst kunnen zetten als er op B wordt geklikt. Of is dat niet wat je bedoelt?

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • timovd
  • Registratie: Maart 2002
  • Laatst online: 18:47

timovd

Voorsprong door techniek

Topicstarter
Ja, inderdaad momenteel heb ik hetvolgende;
code:
1
2
3
4
public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
        System.out.println("jButton geklikt");
        adaptee.introText.setText(adaptee.introText.getText()+"<b>bold txt</b>");

Dit kan alleen bij nieuwe tekst en niet bij bestaande.

Edit:
en inmiddels met de methode van zwippie;
code:
1
2
3
4
public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
        System.out.println("jButton geklikt");
        adaptee.introText.replaceSelection("<b>"+adaptee.introText.getText()+"</b>");

Nu staat alle tekst in het teksvlak tussen "<b>'s" en niet de selection.

[ Voor 39% gewijzigd door timovd op 01-06-2006 16:26 ]

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
getSelection() ipv. getText()? (Gokje, want ik weet niet of die method bestaat.)

Noushka's Magnificent Dream | Unity


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

getSelectedText zou moeten werken.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • timovd
  • Registratie: Maart 2002
  • Laatst online: 18:47

timovd

Voorsprong door techniek

Topicstarter
thanx zwippie!
Als er geen tekst geselecteerd staat, verschijnt er "<b>null</b>" aan het begin van het editorPane. Kan ik dit ook plaatsen op de huidige positie van de cursor?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 18-02 10:22

NetForce1

(inspiratie == 0) -> true

Als ik de code van JEditorPane.replaceSelection bekijk zou dat ook moeten gebeuren.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Met getCaretPosition() krijg je de positie van de de cursor.
Als er geen tekst is geselecteerd (getSelectedText == null of misschien getSelectedText.equals("")) dan voeg je het in op de cursorpositie, anders doe je een replaceSelection..

Trouwens, als je opzoek bent naar de methoden die je tot je beschikking hebt, kijk dan eens op deze en andere pagina's: http://java.sun.com/j2se/...ax/swing/JEditorPane.html ;)

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • timovd
  • Registratie: Maart 2002
  • Laatst online: 18:47

timovd

Voorsprong door techniek

Topicstarter
In JBuilder kwam ik de fuunctie "getSelectionStart"/End tegen. Het is mij nl. nog steeds niet gelukt om een stuk geselecteerde tekst tussen HTML codes te krijgen.
Ik heb nu de volgende code;
code:
1
introText.setText(introText.getSelectionStart()+"<b>"+introText.getSelectedText()+"</b>"+introText.getSelectionEnd());

Wat ik nu te zien krijg is [aantal tekens vóór de gesecteerde tekst]+geselecteerde tekst tussen HTML codes en vervolgens het eerste getal met het aantal tekens van de selectie.

bv:
de zon schijnt (zon staat geselecteerd)
code: 3<b>zon</b>6

Is er een gemakkelijkere manier dan de tekst in een string te zetten en vervolgens daarin aan te passen?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:44

Robtimus

me Robtimus no like you

getSelectionStart() en getSelectionEnd() leveren de indexes op van waar de selectie start cq. eindigt. Met substrings kun je dan een eind komen:
Java:
1
2
3
4
String text = introText.getText();
String start = text.substring(0, introText.getSelectionStart());
String end = text.subString(introText.getSelectionEnd());
introText.setText(start + "<b>" + introText.getSelectedText() + "<b>" + end);

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • timovd
  • Registratie: Maart 2002
  • Laatst online: 18:47

timovd

Voorsprong door techniek

Topicstarter
Cool, je krijgt een sigaar van me.

Helaas werkt deze functie eenmalig. Als ik bij een woord de opmaak heb gewijzigd, kan dit niet meer bij een ander woord. Zowel met dezelfde button als een andere.

Nog twee vraagjes;
Hoe krijg ik de cursor weer terug op het JdbEditorField nadat er op een knop is gedrukt? Met name bij een nieuwe alinea/regel is dit van belang
code:
1
2
3
public void pButton_actionPerformed(ActionEvent e) {
        System.out.println("new paragraph");
        introText.setText(introText.getText()+"<br>"+"\n \n");


Als ik niets heb geselecteerd; kan je dan wel de opmaak neerzetten op de huidige positie van de cursor?

Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:44

Robtimus

me Robtimus no like you

setCaretPosition en requestFocus

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:33

Creepy

Tactical Espionage Splatterer

Eeh.. mag ik er even op wijzen dat het hier geen helpdesk is? Het is de bedoeling dat je eerst actief zelf opzoek gaat naar een oplossing voordat je hier een topic opent.

Ik mis bij elke vraag die je nu stelt de zaken die je zelf hebt uitgezocht en wat daar nu niet mee lukte. De meeste vragen zijn relatief eenvoudig zelf op te lossen door zelf te gaan zoeken en wat documentatie door te lezen.

Als je Programming Beleid - De Quickstart eens wilt doorlezen dan graag :)

Als je een nieuw topic wilt openen dan is dat prima, mits je goed op de Quickstart let :)

[ Voor 10% gewijzigd door Creepy op 13-06-2006 09:36 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.