Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Lancio indesiderato di un'eccezione

    Salve,

    il problema riguarda un'applicazione che deve visualizzare a video messaggi! Lo fa tramite l'uso di un JTextPane al quale vado ad applicare uno StyledDocument!

    Dopo un certo numero di messaggi l'applicazione stampa nella console la seguente eccezione:

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.text.FlowView$FlowStrategy.layoutRow(F lowView.java:538)
    at javax.swing.text.FlowView$FlowStrategy.layout(Flow View.java:452)
    at javax.swing.text.FlowView.layout(FlowView.java:184 )
    at javax.swing.text.BoxView.setSize(BoxView.java:380)
    at javax.swing.text.BoxView.updateChildSizes(BoxView. java:349)
    at javax.swing.text.BoxView.setSpanOnAxis(BoxView.jav a:331)
    at javax.swing.text.BoxView.layout(BoxView.java:691)
    at javax.swing.text.BoxView.setSize(BoxView.java:380)
    at javax.swing.plaf.basic.BasicTextUI$RootView.setSiz e(BasicTextUI.java:1701)
    at javax.swing.plaf.basic.BasicTextUI$RootView.paint( BasicTextUI.java:1420)
    at javax.swing.plaf.basic.BasicTextUI.paintSafely(Bas icTextUI.java:725)
    at javax.swing.plaf.basic.BasicTextUI.paint(BasicText UI.java:868)
    at javax.swing.plaf.basic.BasicTextUI.update(BasicTex tUI.java:847)
    at javax.swing.JComponent.paintComponent(JComponent.j ava:763)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintToOffscreen(JComponent .java:5122)
    at javax.swing.BufferStrategyPaintManager.paint(Buffe rStrategyPaintManager.java:285)
    at javax.swing.RepaintManager.paint(RepaintManager.ja va:1128)
    at javax.swing.JComponent._paintImmediately(JComponen t.java:5070)
    at javax.swing.JComponent.paintImmediately(JComponent .java:4880)
    at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:723)
    at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:679)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Re paintManager.java:659)
    at javax.swing.SystemEventQueueUtilities$ComponentWor kRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java: 597)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:121)
    L'applicazione continua a funzionare regolarmente, ma non ho capito perchè sbuca fuori questo messaggio!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Lancio indesiderato di un'eccezione

    Originariamente inviato da VincenzoTheBest
    L'applicazione continua a funzionare regolarmente, ma non ho capito perchè sbuca fuori questo messaggio!
    Senza vedere il codice, sarebbe più facile vincere al superenalotto piuttosto che capire il problema!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    provo a spiegarti bene:

    ho creato due funzioni:
    static void addStile(StyledDocument doc)
    {
    //es
    Style def = StyleContext.getDefaultStyleContext().getStyle(Sty leContext.DEFAULT_STYLE);

    Style font = documento.addStyle("font", def);
    StyleConstants.setFontFamily(def, "Arial");
    StyleConstants.setFontSize(def, 12);
    }
    e
    static void insertText(StyledDocument documento, String mexUser)
    {
    //controllo mexUser

    //inserimento nel documento
    }

    praticamente nel metodo addStile vado a settare gli StyleConstants per dare uno stile ai messaggi! Questa funzione dunque prende come parametro lo StyledDocument che ho applicato al JTextPane!

    Mentre la seconda implementa essenzialmente l'istruzione
    documento.insertString(docLength, mexUser, tipoStile);
    il tipoStile cambia a seconda del contenuto del messaggio e corrisponde ad uno degli stili inseriti in addStile()!

    Tutto qui!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Detto così come l'hai spiegato mi sembra ok ... almeno concettualmente. Però devi abituarti a postare più codice. L'errore potrebbe altrove: potresti aver dimenticato di inizializzare una variabile di istanza o passato ad un metodo un valore che non va bene o cose del genere ....

    Se non si vede tutto il codice è molto difficile dire cosa non va!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    La funzione insertText nel main, è posizionata in un ciclo while e ogni volta che si riceve un determinato messaggio viene chiamata e gli passo i rispettivi parametri!
    Dovrei fare qualche operazione di aggiornamento sul documento?

  6. #6
    Sostituendo il BoxLayout al FlowLayout nel pannello in cui è contenuto il JTextPane
    non ottengo più le seguenti eccezioni:

    [QUOTE]
    at javax.swing.text.FlowView$FlowStrategy.layoutRow(F lowView.java:538)
    at javax.swing.text.FlowView$FlowStrategy.layout(Flow View.java:452)
    at javax.swing.text.FlowView.layout(FlowView.java:184 )
    at javax.swing.text.BoxView.setSize(BoxView.java:380)
    at javax.swing.text.BoxView.updateChildSizes(BoxView. java:349)
    at javax.swing.text.BoxView.setSpanOnAxis(BoxView.jav a:331)
    at javax.swing.text.BoxView.layout(BoxView.java:691)
    at javax.swing.text.BoxView.setSize(BoxView.java:380)
    at javax.swing.plaf.basic.BasicTextUI$RootView.setSiz e(BasicTextUI.java:1701)
    at javax.swing.plaf.basic.BasicTextUI$RootView.paint( BasicTextUI.java:1420)
    at javax.swing.plaf.basic.BasicTextUI.paintSafely(Bas icTextUI.java:725)
    at javax.swing.plaf.basic.BasicTextUI.paint(BasicText UI.java:868)
    at javax.swing.plaf.basic.BasicTextUI.update(BasicTex tUI.java:847)
    at javax.swing.JComponent.paintComponent(JComponent.j ava:763)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintToOffscreen(JComponent .java:5122)
    at javax.swing.BufferStrategyPaintManager.paint(Buffe rStrategyPaintManager.java:285)
    at javax.swing.RepaintManager.paint(RepaintManager.ja va:1128)
    [OUOTE]

    i restanti messaggi vengono lanciati una volta sola :master:

  7. #7
    Alla fine ho capito che è un problema che si verifica chiamando il metodo, il layout non c'entra niente!

    setContentPane();

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 © 2025 vBulletin Solutions, Inc. All rights reserved.