Tag: jtextpane

在Swing的JTextPane中设置选项卡策略

每当我按Tab键时,我希望我的JTextPane插入空格。 目前它插入制表符(ASCII 9)。 反正是有自定义JTextPane的选项卡策略(除了捕获“tab-key”事件并插入空格本身似乎)?

在jTextPane中更改所选文本的颜色

我正在使用JTextPane创建一个文本编辑器,允许用户更改所选文本的颜色。 但是当用户选择文本时,则选择更改颜色(例如,红色)的选项,文本不会显示为红色,直到文本被取消选中。 我尝试使用setSelectedTextColor来更改所选文本的颜色,但这不起作用,因为无论何时随后选择文本,都会将文本更改为红色。 有没有办法让选定的文字显示为实际颜色? 或者喜欢它在Word中的工作方式,它不是文本的实际颜色,但是当选择不同颜色的文本时,即使选择它们也会显示为不同的颜色。 我使用以下代码设置JTextPane和按钮,将所选文本更改为红色: JButton redButton = new JButton(new StyledEditorKit.ForegroundAction(“red”, Color.RED)); redButton.setFocusable(false); buttonPanel.add(redButton); JTextPane设置为内容类型HTML并使用HTMLEditorKit: p=new JTextPane(); p.setSize(300, 300); kit = new HTMLEditorKit(); p.setEditorKit(kit); p.setDocument(kit.createDefaultDocument()); p.setContentType(“text/html”); p.setEditable(true); 如果您需要更多源代码来理解这个问题,请告诉我。 谢谢!

Java JTextpane选项卡大小

我正在编写一个Java程序,我在程序的某些部分使用了JTextpane。 在这个JTextpane中,我使用制表符(\ t)来制作列,例如: txtpnMTrace = new JTextPane(); txtpnMTrace.setFont(new Font(“Dialog”, Font.PLAIN, 11)); doc = txtpnMTrace.getStyledDocument(); … doc.insertString(doc.getLength(),value1+”\t”+value2+”\t”+value3+”\n”, null); … 我可以在tab(\ t)距离的列中看到值。 标签距离始终相同,我想更改此距离以改善外观。 您知道如何在JTextPane中更改选项卡(\ t)大小? 提前致谢。

JTextPane是否支持文本内存分页?

我正在尝试改进文档显示组件的现有实现。 表达的一个担忧是,当加载大量文本时,我们将获得OOMexception。 根据我之前使用.net的经验,我知道一些基本组件实现了分页,因此没有所有文本都可视化加载到文档中,因此事情不仅工作得更快,而且我们也希望避免出现OOMexception。 所以我想知道是否有支持这些function的基本摆动组件,特别是JTextPanel? 感谢您的帮助,非常感谢

JTextPane:如何设置字体大小

请查看以下代码 import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.FlowLayout; import java.util.ArrayList; import java.util.Scanner; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; import javax.swing.text.Style; import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; public class Form extends JFrame { private JTextPane textPane; private JLabel results; private JPanel center,south; private FlowLayout flow; private ArrayList array; private Color color; private StyledDocument doc; private […]

如何在JTextPane中的组件周围包装文本?

我不明白JTextPane中的包装行为。 如果我插入一个短文本,然后是一个JComponent,然后再插入短文本,我可以在一行中看到插入的东西,如果框架足够大的话。 但是如果文本更长,所以需要几行,组件总是放在一个新行中。 我已经认识到,在将组件插入JTextPane后,其文本会变长一个字符。 因此,如果一个组件被JTextPane视为一个字符,为什么它不像一个字符呢? 可能它取决于Java版本? 我使用Java(TM)SE运行时环境(build 1.7.0-b147) 下面是我的代码(使用shortText / longText实例化变量currentText以重现上述行为): import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.SimpleAttributeSet; public class Test { public static void main(String[] args) { JFrame frame = new JFrame(); JTextPane textPane = new JTextPane(); textPane.setContentType(“text/html”); String shortText = “one two three four five six seven”; String […]

获取’尝试改变通知’例外

我的目标是将用户编写的关键字的蓝色着色实现到JTextPane中。 这就是我的代码的样子: private class DocumentHandler implements DocumentListener { @Override public void changedUpdate(DocumentEvent ev) { } @Override public void insertUpdate(DocumentEvent ev) { highlight(); } @Override public void removeUpdate(DocumentEvent ev) { highlight(); } private void highlight() { String code = codePane.getText(); SimpleAttributeSet defSet = new SimpleAttributeSet(); StyleConstants.setForeground(defSet, Color.BLACK); doc.setCharacterAttributes(0, code.length(), defSet, true); SimpleAttributeSet set = new SimpleAttributeSet(); […]

如何在打开文件时和用户键入时突出显示java中的关键字

因此,我试图突出显示java中存在于文本文件中的关键字,因为用户打开.java文件或写入.java文件。 我想我知道如何判断文件是否属于正确的类型。 但是,我不知道如何更改某些关键字的颜色。 如果有人可以提供帮助那将是很好的,因为现在它非常令人困惑。 我想知道我是否可以以某种方式使用我的替换function。 我试图用我的几种方法试图做到这一点,但它仍然不清楚。 我已经把他的大部分方法和听众拿走了,只是知道他们在那里但是不让它更容易阅读。 import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.DocumentListener; import javax.swing.event.DocumentEvent; import java.util.Scanner; import java.io.*; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultHighlighter; import javax.swing.text.Highlighter; import javax.swing.text.Highlighter.HighlightPainter; import javax.swing.text.JTextComponent; import java.net.URI; import java.util.*; public class MyTextEditor extends JFrame implements ActionListener { private JPanel panel = new JPanel(new BorderLayout()); private JTextArea textArea = new […]

JTextPane – 具有HTMLEditorKit列表的子弹无法正确呈现,除非我执行setText(getText())并重新绘制

我有: JTextPane jtextPane = new JTextPane(); jtextPane.setEditorKit(new HTMLEditorKit()); … 然后我尝试将无序列表按钮添加到工具栏,以便操作为: Action insertBulletAction = HTMLEditorKit.InsertHTMLTextAction (“Bullets”, ” “, HTML.Tag.P, HTML.Tag.UL); JButton insertBulletJButton = new JButton(insertBulletAction); 如果我转储生成的html,这包括正确的代码。 然而,它将被渲染得非常糟糕,因为如下所示甚至没有接近合理: 但是,如果我这样做: jtextPane.setText(jtextPane.getText()); jtextPane.repaint(); 一切都很好。 但如果我不做两条线,那么两者都不会单独工作。 我还可以通过在使jtextPane可见之前设置文本来使其工作。 这真的很奇怪,我不明白为什么我必须做一个setText(getText())后跟一个repaint() 。 PS:这与这个问题非常相似: 如何在JTextPane中实现项目符号? 它的工作原理除了它没有正确渲染。 我不知道它是否与HTMLEditorKit和RTFEditorKit有关,但我导致渲染失败。 下面的html源代码是完美的…… PS2: 此链接也非常方便,但它也没有显示解决方案。 更新:这是所要求的完整代码,但没有其他… public static void main(String[] args) { JFrame jframe = new JFrame(); jframe.setSize(800, 600); […]

从JTextPane中的任何偏移量获取样式

有没有办法获得Style ,样式名称或甚至比较JTextPane的某个位置的Style是否与我在插入时给出文本的样式? 因为我的目的,我创建了自定义JTextPane , StyledDocument和DocumentFilter 。 所以我可以选择Style作为常规字母和另一种Style用于数字。 我也有切换按钮,当切换时设置DocumentFilter以不同的方式格式化数字,而不是定期切换数字格式,所以最后根据JTextPane’s getText()方法无法区分哪些数字受到影响。 因此,唯一的方法是比较我将常规和特殊数字样式作为常量的样式。 我唯一需要提出的是如何为每个角色获得Style。 我知道有JTextPane’s方法从插入符号的位置获取AttributeSet,名为getCharacterAttributes()但我认为这对我的问题毫无用处。 是否有必要包含代码示例? 我不认为这很难想象。 如果你想要我,我会包括它。 任何输入将不胜感激。 谢谢!