[java swing] несколько вопросов
Вопрос первый: В текстовых полях есть возможность вставлять HTML-код и ссылки <a href=блабла/.. Дак вот. Как сделать, чтобы по этим ссылкам открывался стандартный для ОС браузер\почтовый клиентМетод addHyperlinkListener только учти, что схема в URL должна быть точная. Нельзя создать линк на www.ya.ru. надо написать http://www.ya.ru Для реализации второй части этого вопроса нужен самый новый JDK, класс Desktop.
Вопрос второй: Есть панель, на ее канвасе расположена картинка, еще на ней находятся кнопочки. Как получить доступ к графике панели вместе со всем содержимым? То есть как сделать скриншот компонента вместе со всеми его подкомпонентами?
BufferedImage bi = new BufferedImage(mainFrame.getWidth mainFrame.getHeight BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.getGraphics;
try {
mainFrame.paintAll(g);
}
finally {
g.dispose;
}
Со вторым все ясно. Только мне почему-то кажется, что вместо getGraphics нужно вставить createGraphics.
Класс Desktop у меня в JDK имеется (java.awt.Desktop). И эти функции mail и browse я в нем вижу. Только неясно как привязать листенер к нажатию на <a href="mailto:mail.ru">mail</a> в текстовом окне. ?
public static HyperlinkListener URLopener = new HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
System.out.print("o!");
if (e.getEventType == HyperlinkEvent.EventType.ACTIVATED) {
if (Desktop.isDesktopSupported
try {
if (e.getURL.getProtocol.equals("http"
Desktop.getDesktop.browse(e.getURL.toURI;
else if (e.getURL.getProtocol.equals("mailto"
Desktop.getDesktop.mail(e.getURL.toURI;
}
catch (Exception ex) {
System.out.print(ex);
}
else
; // у вас старая версия явы, дядя
}
}
};
Еще один нетривиальный вопрос по SWING. У меня на одной панельки отрабатываются мышиные нажатия. Так вот - в висте, почему-то, это нажатие отрабатывается только со второго раза. Кто-нибудь знает о таком?
Оставить комментарий
milanadiana
Добрый день.Вопрос первый: В текстовых полях есть возможность вставлять HTML-код и ссылки <a href=блабла/.. Дак вот. Как сделать, чтобы по этим ссылкам открывался стандартный для ОС браузер\почтовый клиент.
Вопрос второй: Есть панель, на ее канвасе расположена картинка, еще на ней находятся кнопочки. Как получить доступ к графике панели вместе со всем содержимым? То есть как сделать скриншот компонента вместе со всеми его подкомпонентами?
Заранее спасибо.