我希望在我身上有这样的方法 DocumentFilter
public void replaceUpdate(int offset, int length, String text) {
try {
super.replace(byPass, offset, length, text, null);
} catch (BadLocationException ex) {
//error
}
}
Run Code Online (Sandbox Code Playgroud)
目前为了获得FilterBypass的实例(上面的方法中的byPass),我需要从重写的方法insertString获取:
private FilterBypass byPass;
@Override
public void insertString(DocumentFilter.FilterBypass fb,
int offset, String string, AttributeSet att)
throws BadLocationException {
byPass = fb;
//some stuff here
super.insertString(fb, offset, string, att);
}
Run Code Online (Sandbox Code Playgroud)
但这给我带来了一些问题.任何人都可以建议一些不同的方式获得FilterBypass?我无法找到一种方法来获得FilterBypass不同的参考.
如果我要覆盖它的方法应该怎么做?
参考我之前的问题,我想问一下如何将不同文件夹中的文件读入类似文件中.jar.
该问题提供了文件夹层次结构和详细信息.我的主要问题是使用一行代码:
JTextPane textPane = ... //general initialization
textPane.setPage("path/file.html");
Run Code Online (Sandbox Code Playgroud)
问题是我必须将.file保存在我的.jar中.
此外,我想知道关于这个主题的建议.
我在java中有这个开源消息控制台的代码,但它根本无法编译.任何人都可以看到它是否可以使用他们的IDE运作?
import java.io.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
/*
* Create a simple console to display text messages.
*
* Messages can be directed here from different sources. Each source can
* have its messages displayed in a different color.
*
* Messages can either be appended to the console or inserted as the first
* line of the console
*
* You can limit the number of lines to hold in the Document.
*/
public class …Run Code Online (Sandbox Code Playgroud) 我很好奇最有效的方法是读取文本文件(不要担心大小,它相当小,所以java.io很好),然后将其内容转储到JTextArea显示器中.
例如,我可以以某种方式使用单个字符串中的整个文件,然后使用JTextArea.setText它来显示它,或者我应该逐行读取或字节数组并将它们填充到StringBuffer中,然后将文本区域设置为?
谢谢
我使用a DocumentListener来处理JTextPane文档中的任何更改.而我希望删除用户类型的内容JTextPane并插入自定义文本.它是不可能改变文档的DocumentListener,而不是解决方案在这里说:
java.lang.IllegalStateException同时在TextArea,Java中使用Document Listener
,但我不明白,至少我不知道该怎么做在我的情况下?
我为自己创建了一个Summer项目,并决定编写一个简单的文本/代码编辑器.我认为到目前为止一切进展顺利.我创建了一个基本的GUI,可以执行简单的操作,如打开,保存和创建文件.
现在我正在通过在打开文件时读取单词来进行语法突出显示,但事实证明这非常麻烦,如果有人只是在GUI中输入,则不会突出显示语法.
所以我想了解如何进行语法高亮显示,以便它既可以打开文件也可以在窗口中输入.
此外,如果有人有任何时间我想听听关于我的代码的评论,这就是存储库:https://mcmillhj.beanstalkapp.com/jtexteditor/browse
主要文件是JTextEditor.java和ui/JTextEditorUI.java
我正在实施一个拼写检查器,并想知道是否有一种简单/明显的方法可以用不同的颜色(如Red)强调某些文本.
我已经设置了所有内容并使用以下代码加下划线(也设置了文本的颜色):
private AttributeSet getAttributeSet(Color foregroundColor) {
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setForeground(attrs, foregroundColor);
StyleConstants.setUnderline(attrs, true);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将单词设置为蓝色,但也用蓝色加下划线.我需要能够改变下划线和厚度.有任何想法吗?
谢谢,
下面的方法扩展了一个JFrame,但是我需要一个swing文本框来接收double值并将它们存储在一个变量中.必须将文本框添加到容器中.
public class myClass extends JFrame{
Container container;
container = getContentPane();
//Item label
JLabel labelText = new JLabel();
...
labelText.setText ("Item:");
container.add( labelText );
//Item name: Textbox
//code to make a textbox, add it to the container, and store the value in a variable goes here
Run Code Online (Sandbox Code Playgroud) 我正在编写一个类似十六进制编辑器的视图,它由两个JTextComponents(十六进制和ASCII)组成.我想同步两个视图之间的选择,所以我为这两个组件实现了一个CaretListener.这适用于响应用户长按,拖动和释放鼠标的选择事件.当用户释放鼠标时,组件会收到caretUpdate.
当用户按下鼠标并拖动鼠标而不释放时,组件如何接收增量的caretUpdate事件?
我坚持一个简单的问题,我想在摇摆控件中显示格式化的文本,并继续在其中添加新的值,我不想.setText(.getText + text)出于个人原因使用(类似于文本区域的追加方法就是我的意思寻找)我已经尝试过,JEditorpane, Textpane但他们都没有附加方法.我应该使用哪种摆动控制?