Tag: jeditorpane

如何将JEditorPane插入JTable单元格?

我想把JEditorPane放在JTable单元格中。 我写过: jTabel1.setDefaultRenderer(String.class, new StringEditorPane()); ……… class StringEditorPane extends JEditorPane implements TableCellRenderer { public StringEditorPane() { setContentType(“text/html”); } public Component getTableCellRendererComponent( JTable table, Object styledString, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { String styledText = (String) styledString; setText(styledText); setBackground(getSelectionColor()); return this; } else { String styledText = (String) styledString; setText(styledText); […]

使用Unicode(Java)访问/更改JEditorPane的html加载元素+ HTMLEditorKit问题

这将是一个很长的问题,所以忍受我:) 我的应用程序 我正在开发一个Java(带有JFrame GUI)桌面应用程序,它执行以下操作: 扫描(.txt)文件。 从这些文件中解析一些数字,对它们执行一些计算,最后将结果存储在String变量中。 以特殊(表格)格式输出这些数字。 (注意:格式包括一些Unicode(阿拉伯语)字符。) 问题 前两部分进展顺利。 但是,当我来到第3部分(格式化输出)时,我不知道如何显示这种特殊格式,所以, 在Java中显示特殊格式化输出(表)的最佳方法是什么? 注意: Formatter 不会提供帮助,因为它没有对表的适当支持。 解决方案一: 我做了我的研究,发现我可以使用JEditorPane,因为它可以显示特殊格式,如“html”。 所以我决定用所需的(表格)格式创建一个“html”页面,然后在[JEditorPane] [4]上显示这个页面。 我这样做了,它顺利进行,直到我想将一些html元素的值更改为那些(.txt)文件中的解析数字。 如何访问html元素(例如 )并更改其值? 请注意,使用setPage(url)在JEditorPane中加载(.html setPage(url) 。 Unicode字符显示正常,但我无法更改某些元素值(例如,我想将 000,000,000 的值更改为 MainController.getCurrentTotalPayment() 解决方案二: 我找到了一个解决方法,涉及使用HTMLDocument和HTMLEditorKit,这样我就可以从头开始使用HTMLEditorKit创建(.html)并使用kit.insertHTML在JEditorPane上显示它。 我已经使用上面的方法成功添加了内容,并且我还能够从(.txt)文件中添加解析后的数字,因为我将它们存储在my(MainController)类中。 不幸的是,Unicode阿拉伯字符未正确显示。 如何正确显示这些Unicode字符? 所以第一个解决方案缺乏对html元素的访问权限,第二个解决方案缺乏Unicode支持! 我的同事建议我在html文档中使用JSP代码,该代码可以访问我的MainController.java类。 因此,将页面加载到JEditorPane中已经更改了html元素。 没有JSP的帮助,有没有办法做到这一点? 其他人推荐使用JTidy,但是在Java的JDK中没有办法吗? 我对所有可能的解决方案持开放态度。 请帮忙。 我的代码: 省略了一些代码内容,因为它们不相关 MainController.java class MainController { private static String currentTotalPayment; public static void main(String[] […]

JScrollPane中的JEditorPane没有根据需要resize

我正在我的应用程序中实现一个注释框工具,用户可以使用鼠标resize。 此注释框包含一个滚动窗格,其中包含一个JEditorPane ,用户可以在其中插入注释。 我在滚动窗格中添加了编辑器窗格,原因如下: 自动掠夺jeditorpane 当用户调整注释框的大小时,我正在为JScrollPane和JEditorPane设置所需的大小。 当用户增加注释框的大小时,这些组件的大小会根据需要增加,但是当注释框的大小减小时,即使在设置大小之后, JEditorPane的大小也不会减小。 这导致滚动窗格内的滚动条。 我尝试使用setPreferrredSize , setSize , setMaximumSize为JEditorPane 。 编辑器窗格的大小仍然没有减少。 我尝试在设置大小后调用revalidate()或updateUI()但没有用。 我使用的是Java 1.4.2。 请给我一些见解….

带语法高亮和行号的文本编辑器?

这对于一个团队项目来说有点挑战,更不用说单人实现了,但我试图使用JEditorPane将一个简单而优雅的文本编辑器与语法高亮组合在一起。 我偶然发现这个已经停止使用,我很难理解里面的所有lexer文件和.lex内容。 我甚至在一些博客中发现这个项目后来被其他一些团队采用,但甚至还没有停止。 我不需要它过于花哨,比如有代码折叠和东西(尽管我很想知道如何做到这一点),但我至少需要一个基本的语法突出显示存在和相当多的行号最左边就像Notepad ++一样。 请记住,我只需要它来突出显示Java源代码,至少目前是这样。 我正在寻找的是一个教程,一个记录良好的示例和示例代码,一个预先制作的包,甚至NetBeans的工具都可以做到这一点,我不需要从头开始编写源代码,我只需要一个可以使用的实现。 提前致谢! PST这不是商业或太大,不要问为什么我想重新发明轮子当有那么多的编程编辑器,我正在学习,这对我来说是一个很好的练习!

JEdi​​torPane和自定义编辑器套件

我有一个小问题。 我需要使用自定义编辑器工具包将现有文件加载到JEditorPane 。 我有一个编辑器工具包,一个扩展名的文件,我需要强制JEditorPane识别我的文件并使用我的编辑器工具包。 我发现只有,这是可能的,但无处可去。 该工具包也基于HTML和文件。 如果file具有.html扩展名,则它可以工作,但是当我将文件重命名为.xhtbm ,它将以纯文本forms打开。 内容类型设置为text/plain ,但我无法为此类型注册我的编辑器工具包,因为已经为此内容类型注册了另一个编辑器工具包。 实际上问题是:是否真的可以将某些编辑器工具包与某种文件类型相关联?

在jeditorpane上显示图像(java swing)

我有一个通过这种方式创建的JEditorPane: JEditorPane pane = new JEditorPane(“text/html”, “” + my_text_to_show + “” + “”); 我将此窗格放在JFrame上。 文字显示正确,但我看不到图片,只有一个方块表示应该有一个图像(即:未找到图片时浏览器显示的“破碎图像”)

JEdi​​torPane Hyperlink swing html

我很难让超链接在JEditorPane中工作。 有人可以告诉我这里我做错了什么吗? 我希望能够点击链接和浏览器打开该页面。 提前致谢。 :d bottomText.setText(“Yahoo”); bottomText.setEditable(false); bottomText.setOpaque(false); bottomText.setEditorKit(JEditorPane.createEditorKitForContentType(“text/html”)); bottomText.addHyperlinkListener(new HyperlinkListener() { public void hyperlinkUpdate(HyperlinkEvent e) { if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { } if(Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse(e.getURL().toURI()); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (URISyntaxException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } });

JScrollPane滚动条跳转到JEditorPane.setText()

每次(除了第一次)我在JEditorPane滚动条中设置文本跳转到JEditorPane的底部。 有什么方法可以避免这种情况吗? 我试过的一种方法是在setText()之后使用setCaretPosition(0)。 它有效,但它不是我需要的。 滚动条跳下然后跳起来。 有没有办法避免在settext()中滚动条的任何移动? 我的代码: package test; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JScrollPane; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; public class Test extends JApplet implements HyperlinkListener { JEditorPane dataDisplayer = new JEditorPane(); public void init() { ataDisplayer.setEditable(false); dataDisplayer.add(new JButton()); dataDisplayer.setContentType(“text/html”); JScrollPane jsp = new JScrollPane(dataDisplayer); dataDisplayer.setText(“Change Textbla”); this.dataDisplayer.addHyperlinkListener(this); setContentPane(jsp); } @Override public void […]

如何在JTextPane中为文本设置StrikeThrough和Underline样式选项?

我有一个JTextPane组件,我正在尝试将用户键入的文本设置为同时加下划线和删除线。 应将下一个类型字符的删除线属性设置为true的相关代码片段为: JEditorPane editor = getEditor(e); if (editor != null) { StyledEditorKit kit = getStyledEditorKit(editor); MutableAttributeSet attr = kit.getInputAttributes(); SimpleAttributeSet sas = new SimpleAttributeSet(); StyleConstants.setStrikeThrough(sas, true); setCharacterAttributes(editor, sas, false); } 这样可以将文本设置为删除线,但如果它已经设置为下划线,则会丢失下划线样式信息。 仔细看看StyleConstants.setStrikeThrough(…)背后的实际代码我注意到下划线和删除线属性的CSS样式标签将是相同的(即“文本装饰”),当值更新时保存属性的哈希表,它将被覆盖。 这意味着代码如下: StyleConstants.setStrikeThrough(sas, true); StyleConstants.setUnderlineThrough(sas, true); 将导致下一个键入的字符加下划线而没有删除线。 我检查了属性值,对于“text-decoration”属性,值是“下划线”,而我期待“直通,下划线”。 有谁知道如何以一个干净的Swing兼容方式实现这一目标? 我的方法有问题吗? 在JTextPane样式的核心是否存在一个潜在的假设,即文本不应该同时删除并强调下划线?

如何在JEditorPane中的单词下制作红色曲折

我需要在Java中为我正在创建的应用程序创建一个简单的拼写检查程序,并且我已经搜索过,并且没有找到任何直接和重点答案。 如何在JEditorPane创建一个带有红色锯齿形的下划线? 喜欢这个: 如果任何人有任何简单且相当容易实现的想法,请您与我分享。 甚至可能是某些代码的链接。