powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вoпрос про oшибку при двойном щелчке в JEditorPane
4 сообщений из 4, страница 1 из 1
Вoпрос про oшибку при двойном щелчке в JEditorPane
    #33014415
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oшибкa при двойном щелчке в JEditorPane на ссылке
Код: plaintext
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.
 import  javax.swing.*;
 import  javax.swing.event.HyperlinkListener;
 import  javax.swing.event.HyperlinkEvent;
 public   class  Test  extends  JFrame  implements  HyperlinkListener
{
	 private  String str1="<p>TEXT<p><a href='link'>TEXT</a>" +
						"<p>TExt"+
						"<p>TExt"+"<p>TExt"+"<p>TExt";
	 private  String str2="<p>text<p><a href='link'>TEXT</a>" +
						"<p>TExt"+
						"<p>TExt"+"<p>TExt"+"<p>TExt";;
	 private   boolean  b = true;
	 public  JEditorPane displayClassProperties=  new  JEditorPane();;
	 public   static   void  main(String[] arg)
	{
		 new  Test();
	}
	 public  Test(){
		displayClassProperties.setContentType("text/html");
    	displayClassProperties.setText(str1);
		displayClassProperties.addHyperlinkListener( this );
		 this .getContentPane().add( new  JScrollPane(displayClassProperties));
		displayClassProperties.setEditable(false);
		 this .setSize( 200 , 100 );
		 this .setVisible(true);
	}
	 public   void  hyperlinkUpdate(HyperlinkEvent e) {
 		 if  (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
			  if  (b){
				displayClassProperties.setText(str1);
				b=false;
			 } else {
				displayClassProperties.setText(str2);
				 b=true;
			 }
			displayClassProperties.updateUI();
		 }
	}
}

Код: plaintext
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.
45.
46.
47.
48.
49.
java.lang.IllegalArgumentException:  null  source
	at java.util.EventObject.<init>(EventObject.java: 34 )
	at java.awt.AWTEvent.<init>(AWTEvent.java: 225 )
	at java.awt.event.ActionEvent.<init>(ActionEvent.java: 161 )
	at javax.swing.text.DefaultCaret.mouseClicked(DefaultCaret.java: 295 )
	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java: 212 )
	at java.awt.Component.processMouseEvent(Component.java: 5103 )
	at java.awt.Component.processEvent(Component.java: 4897 )
	at java.awt.Container.processEvent(Container.java: 1569 )
	at java.awt.Component.dispatchEventImpl(Component.java: 3615 )
	at java.awt.Container.dispatchEventImpl(Container.java: 1627 )
	at java.awt.Component.dispatchEvent(Component.java: 3477 )
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java: 3483 )
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java: 3207 )
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java: 3128 )
	at java.awt.Container.dispatchEventImpl(Container.java: 1613 )
	at java.awt.Window.dispatchEventImpl(Window.java: 1606 )
	at java.awt.Component.dispatchEvent(Component.java: 3477 )
	at java.awt.EventQueue.dispatchEvent(EventQueue.java: 456 )
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java: 201 )
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 151 )
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 145 )
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 137 )
	at java.awt.EventDispatchThread.run(EventDispatchThread.java: 100 )
java.lang.IllegalArgumentException:  null  source
	at java.util.EventObject.<init>(EventObject.java: 34 )
	at java.awt.AWTEvent.<init>(AWTEvent.java: 225 )
	at java.awt.event.ActionEvent.<init>(ActionEvent.java: 161 )
	at javax.swing.text.DefaultCaret.mouseClicked(DefaultCaret.java: 299 )
	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java: 212 )
	at java.awt.Component.processMouseEvent(Component.java: 5103 )
	at java.awt.Component.processEvent(Component.java: 4897 )
	at java.awt.Container.processEvent(Container.java: 1569 )
	at java.awt.Component.dispatchEventImpl(Component.java: 3615 )
	at java.awt.Container.dispatchEventImpl(Container.java: 1627 )
	at java.awt.Component.dispatchEvent(Component.java: 3477 )
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java: 3483 )
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java: 3207 )
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java: 3128 )
	at java.awt.Container.dispatchEventImpl(Container.java: 1613 )
	at java.awt.Window.dispatchEventImpl(Window.java: 1606 )
	at java.awt.Component.dispatchEvent(Component.java: 3477 )
	at java.awt.EventQueue.dispatchEvent(EventQueue.java: 456 )
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java: 201 )
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 151 )
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 145 )
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 137 )
	at java.awt.EventDispatchThread.run(EventDispatchThread.java: 100 )

...
Рейтинг: 0 / 0
Вoпрос про oшибку при двойном щелчке в JEditorPane
    #33015374
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
	 public   void  hyperlinkUpdate(HyperlinkEvent e) {
 		 if  (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
            displayClassProperties.setText((b = !b) ? str1 : str2);
        }
	}

Проблемы в updateUI().
...
Рейтинг: 0 / 0
Вoпрос про oшибку при двойном щелчке в JEditorPane
    #33015710
Pankon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я знаю, что в этом проблема. Но без updateUI() -
Код: plaintext
1.
2.
3.
4.
5.
6.
 public   void  hyperlinkUpdate(HyperlinkEvent e) {
 		 if  (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
			displayClassProperties.setText((b = !b) ? str1 : str2);
//displayClassProperties.updateUI();
			 }
			
	}
присходит скролинг вниз хтмл страницы, от чего я и избавляюсь с помощью updateUI() -
Код: plaintext
1.
2.
3.
4.
5.
 public   void  hyperlinkUpdate(HyperlinkEvent e) {
 		 if  (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
				displayClassProperties.setText((b = !b) ? str1 : str2);
			 }
			displayClassProperties.updateUI();
	}
В этом варианте все работает корректно - при одинарном челчке. При двойном же выпадает эта ошибка, которая и весь кайф портит.
...
Рейтинг: 0 / 0
Вoпрос про oшибку при двойном щелчке в JEditorPane
    #33015737
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делай тогда весь вызов в SwingUtilities.invokeLater().
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вoпрос про oшибку при двойном щелчке в JEditorPane
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]