08/02/12 15:31
killer
Salve a tutti... ho un problema a quanto strano...
Sto sviluppando una chat.
Dovrei visualizzare in uno dei due components jtextpane o jtexteditor( mi consigliate voi ) i messaggi provenienti da altri client con un colore o un font scelto dall'utente.
Ovviamente vorrei 1)che ogni text venga visualizzato con i loro attributi a capo senza cancellare i text precedenti( mantenendo i loro colori e font )
2)devo ovviamente personalizzare il text con codice html
3)il testo deve andare a capo quando arriva al margine. come fare tutto questo ? ho molta confusione a riguardo. ho provato a scrivere la seguente funzione senza risultato.cosa sbaglio !? Fatemi sapere presto
Error:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at javax.swing.text.BoxView.getOffset(BoxView.java:1101)
at javax.swing.text.BoxView.paint(BoxView.java:420)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(BasicTextUI.java:1436)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:739)
at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:883)
at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:862)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
at javax.swing.RepaintManager.access0(RepaintManager.java:59)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.accessSalve a tutti... ho un problema a quanto strano...
Sto sviluppando una chat.
Dovrei visualizzare in uno dei due components jtextpane o jtexteditor( mi consigliate voi ) i messaggi provenienti da altri client con un colore o un font scelto dall'utente.
Ovviamente vorrei 1)che ogni text venga visualizzato con i loro attributi a capo senza cancellare i text precedenti( mantenendo i loro colori e font )
2)devo ovviamente personalizzare il text con codice html
3)il testo deve andare a capo quando arriva al margine. come fare tutto questo ? ho molta confusione a riguardo. ho provato a scrivere la seguente funzione senza risultato.cosa sbaglio !? Fatemi sapere presto
Error:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at javax.swing.text.BoxView.getOffset(BoxView.java:1101)
at javax.swing.text.BoxView.paint(BoxView.java:420)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(BasicTextUI.java:1436)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:739)
at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:883)
at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:862)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
at javax.swing.RepaintManager.access0(RepaintManager.java:59)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access{parsed_message}0(EventQueue.java:101)
at java.awt.EventQueue.run(EventQueue.java:666)
at java.awt.EventQueue.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
0(EventQueue.java:101)
at java.awt.EventQueue.run(EventQueue.java:666)
at java.awt.EventQueue.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Sto sviluppando una chat.
Dovrei visualizzare in uno dei due components jtextpane o jtexteditor( mi consigliate voi ) i messaggi provenienti da altri client con un colore o un font scelto dall'utente.
Ovviamente vorrei 1)che ogni text venga visualizzato con i loro attributi a capo senza cancellare i text precedenti( mantenendo i loro colori e font )
2)devo ovviamente personalizzare il text con codice html
3)il testo deve andare a capo quando arriva al margine. come fare tutto questo ? ho molta confusione a riguardo. ho provato a scrivere la seguente funzione senza risultato.cosa sbaglio !? Fatemi sapere presto
public void insertIntoTextPane(String htmltext) { getTextPane().setContentType("text/html"); try { HTMLEditorKit kit = new HTMLEditorKit(); getTextPane().setEditorKit(kit); HTMLDocument doc = new HTMLDocument(); getTextPane().setDocument(doc); kit.insertHTML(doc, doc.getLength(),htmltext,0, 0, null); } catch (BadLocationException | IOException e) { } }
Error:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at javax.swing.text.BoxView.getOffset(BoxView.java:1101)
at javax.swing.text.BoxView.paint(BoxView.java:420)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(BasicTextUI.java:1436)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:739)
at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:883)
at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:862)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
at javax.swing.RepaintManager.access0(RepaintManager.java:59)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.accessSalve a tutti... ho un problema a quanto strano...
Sto sviluppando una chat.
Dovrei visualizzare in uno dei due components jtextpane o jtexteditor( mi consigliate voi ) i messaggi provenienti da altri client con un colore o un font scelto dall'utente.
Ovviamente vorrei 1)che ogni text venga visualizzato con i loro attributi a capo senza cancellare i text precedenti( mantenendo i loro colori e font )
2)devo ovviamente personalizzare il text con codice html
3)il testo deve andare a capo quando arriva al margine. come fare tutto questo ? ho molta confusione a riguardo. ho provato a scrivere la seguente funzione senza risultato.cosa sbaglio !? Fatemi sapere presto
public void insertIntoTextPane(String htmltext) { getTextPane().setContentType("text/html"); try { HTMLEditorKit kit = new HTMLEditorKit(); getTextPane().setEditorKit(kit); HTMLDocument doc = new HTMLDocument(); getTextPane().setDocument(doc); kit.insertHTML(doc, doc.getLength(),htmltext,0, 0, null); } catch (BadLocationException | IOException e) { } }
Error:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at javax.swing.text.BoxView.getOffset(BoxView.java:1101)
at javax.swing.text.BoxView.paint(BoxView.java:420)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(BasicTextUI.java:1436)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:739)
at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:883)
at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:862)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
at javax.swing.RepaintManager.access0(RepaintManager.java:59)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access{parsed_message}0(EventQueue.java:101)
at java.awt.EventQueue.run(EventQueue.java:666)
at java.awt.EventQueue.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
0(EventQueue.java:101)
at java.awt.EventQueue.run(EventQueue.java:666)
at java.awt.EventQueue.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
aaa