Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670

    [Java] JEditorPane modifiche real-time

    Ciao a tutti
    Visto che l'oggetto JEditorPane interpreta il codice html, c'è un modo per far interpretare a questo oggetto il codice html che l'utente stà scrivendo in real-time(ovvero proprio quando l'utente lo stà scrivendo)???

    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Avevo cominciato a suo tempo un piccolo editor, poi per motivi vari ho abbandonato tutto. Non ho più tutto il codice che avevo scritto, ma questo va. La parte superiore è il JEditorPane mentre il pannello inferiore è una JTextArea. Il codice è così semplice che si spiega da sé.
    codice:
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    
    public class htmlEditor extends JFrame {
    
      private class myDocumentListener implements DocumentListener {
        public void changedUpdate(DocumentEvent de) {
          editorPane.setText(codePane.getText());
        }
        public void insertUpdate(DocumentEvent de) {
          editorPane.setText(codePane.getText());;
        }
        public void removeUpdate(DocumentEvent de) {
          editorPane.setText(codePane.getText());
        }
      }
      private JEditorPane editorPane;
      private JTextArea codePane;
    
      public htmlEditor() {
        super("HTML Editor ");
        this.setSize(600,600);
        this.getContentPane().setLayout(new GridLayout(2,1));
        editorPane = new JEditorPane();
        editorPane.setEditable(false);
        editorPane.setContentType("text/html");
        codePane = new JTextArea();
        JScrollPane upperScroll = new JScrollPane(editorPane);
        JScrollPane lowerScroll = new JScrollPane(codePane);
        DocumentListener documentListener = new myDocumentListener();
        codePane.getDocument().addDocumentListener(documentListener);
        this.getContentPane().add(upperScroll);
        this.getContentPane().add(lowerScroll);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
    
      public static void main (String[] args) {
        htmlEditor he = new htmlEditor();
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    Perfetto andrea ti ringrazio tantissimo!
    Un ultima cosa sempre sui JEditorPane, ho visto che i link non funzionano, come si potrebbe fare?
    Grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    A occhio e croce comuqnue misembra molto inefficiente perche provoca ilricaricamento del testo dell'editorpane ognivolta chel'utente inserisce anche solo un caratterenell'area di testo...con documenti medio grandi di certo l'editorpane ci mette un po a rifare il parsing di tutto

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da anx721
    A occhio e croce comuqnue misembra molto inefficiente perche provoca ilricaricamento del testo dell'editorpane ognivolta chel'utente inserisce anche solo un caratterenell'area di testo...con documenti medio grandi di certo l'editorpane ci mette un po a rifare il parsing di tutto
    Niente di più vero. La cosa migliore sarebbe stata effettuare l'aggiornamento solo alla chiusura del tag correntemente editato...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    perfetto, grazie mille a tutti

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    25
    E se però si volesse fare tutto in unica area di testo, ma usando una codifica propria?
    Volevo sapere se è possibile...
    In pratica devo creare una finestra con area di testo che riconoscendo un linguaggio predefinito assegna alle diverse parole del linguaggio un colore diverso, e magari anche sostituisce la vera e propria parola nel testo con un'icona... tutto mentre si scrive a mano nell'area di testo.

    E' possibile?
    Non ho però moltissimo tempo, devo quindi trovare una soluzione magari un pò veloce che sia un buon compromesso...

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    25
    Oppure anche mettendo una sorta di piccola area di testo con associato un pulsante "insert" sotto la visualizzazione del testo intero stilizzato secondo il linguaggio... una cosa tipo lo stile delle chat...
    Voi che soluzione adattereste?

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    25
    Mmmm nessuno ha idee?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.