package manage;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
/**
* 测试点击按钮后,部分字体加粗
* doc.setCharacterAttributes(0, 100, boldStyle, true); 该方法设置加粗字体数量
* @author lance
*/
public class TextSamplerDemo {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception evt) {}
JFrame f = new JFrame("Styles Example 3");
StyleContext sc = new StyleContext();
final DefaultStyledDocument doc = new DefaultStyledDocument(sc);
JTextPane pane = new JTextPane(doc);
Style defaultStyle = sc.getStyle(StyleContext.DEFAULT_STYLE);
final Style mainStyle = sc.addStyle("MainStyle", defaultStyle);
StyleConstants.setLeftIndent(mainStyle, 16);
StyleConstants.setRightIndent(mainStyle, 16);
StyleConstants.setFirstLineIndent(mainStyle, 16);
StyleConstants.setFontFamily(mainStyle, "serif");
StyleConstants.setFontSize(mainStyle, 12);
final Style boldStyle = sc.addStyle("MainStyle", defaultStyle);
StyleConstants.setBold(boldStyle, true);
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
try {
doc.setLogicalStyle(0, mainStyle);
doc.insertString(0, text, null);
} catch (BadLocationException e) {
}
doc.dump(System.out);
}
});
} catch (Exception e) {
System.out.println("Exception when constructing document: " + e);
System.exit(1);
}
JButton button = new JButton("apply");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//设置多少字体加粗
doc.setCharacterAttributes(0, 100, boldStyle, true);
}
});
JScrollPane scrollPane = new JScrollPane(pane);
JPanel panel = new JPanel();
panel.add(button, BorderLayout.NORTH);
panel.add(scrollPane, BorderLayout.CENTER);
f.getContentPane().add(scrollPane, BorderLayout.CENTER);
f.getContentPane().add(button, BorderLayout.SOUTH);
f.setSize(400, 300);
f.setVisible(true);
}
public static final String text =
"Attributes, Styles and Style Contexts\n" +
"The simple PlainDocument class that you saw in the previous " +
"chapter is only capable of holding text. The more complex text " +
"components use a more sophisticated model that implements the " +
"StyledDocument interface. StyledDocument is a sub-interface of " +
"Document that contains methods for manipulating attributes that " +
"control the way in which the text in the document is displayed. " + "\n\r" +
"The Swing text package contains a concrete implementation of " +
"StyledDocument called DefaultStyledDocument that is used as the " +
"default model for JTextPane and is also the base class from which " +
"more specific models, such as the HTMLDocument class that handles " +
"input in HTML format, can be created. In order to make use of " +
"DefaultStyledDocument and JTextPane, you need to understand how " +
"Swing represents and uses attributes.\n";
}
分享到:
相关推荐
在Java Swing库中,`JTextPane`是一个功能强大的文本组件,它允许显示和编辑富文本格式,包括字体、颜色和排版等特性。本文将深入探讨`JTextPane`的基本概念、功能以及如何在Java应用程序中使用它。 #### 一、`...
首先,`JTextPane`不同于简单的`JTextArea`,它可以处理更复杂的文本格式,如字体、颜色、样式等。要实现关键字变色,我们需要使用` StyledDocument `接口,它是`JTextPane`内部文档的抽象表示,支持样式和格式的...
这通常涉及创建一系列 SimpleAttributeSet 或 Style 对象,设置它们的颜色、字体样式等属性。 3. **解析代码**:使用正则表达式或其他解析库,遍历输入的代码,识别出不同类型的语法元素。例如,查找关键字、注释和...
在Java Swing库中,`JTextPane`是一个高级文本组件,它允许用户处理富文本,包括格式化的文本、图像和嵌入对象。本项目提供的源码着重展示了如何在`JTextPane`中插入图片和艺术字,使得文本区域更加丰富多彩。`...
在Java的Swing库中,`JEditorPane`和`JTextPane`是两种非常重要的文本组件,它们允许用户编辑和显示富文本内容,包括不同的字体、颜色、字号、样式等。这两个组件都是`javax.swing.text`包的一部分,提供了丰富的...
在Java Swing库中,`JEditorPane`和`JTextPane`是两个常用的文本组件,它们主要用于显示和编辑富文本内容。在这个特定的程序中,我们看到的是一个演示如何控制这两类组件换行特性的应用。`JEditorPane`通常用于显示...
在Java编程中,实现文本域显示不同颜色的文字主要涉及到Swing库中的JTextPane组件。JTextPane是一个可编辑的文本组件,支持富文本格式,能够处理不同的样式,包括字体、颜色等。以下是对这个主题的详细解释: 1. **...
JTextPane使用,可以传图片,文字等
在Java Swing库中,`JTextPane`是一个用于显示和编辑富文本的组件,它可以处理包含格式化文本、图片和嵌入对象的文档。在处理大量文本时,我们经常需要实现搜索功能,以便用户能够快速查找特定的关键词或短语。然而...
例如,`\fontname`命令用于设置字体,`\b`表示加粗,`\i`表示斜体。 要创建一个简单的RTF文件,你可以使用`BufferedWriter`类来写入文本。以下是一个基本示例: ```java import java.io.*; public class ...
JTextPane是Swing的一部分,它可以处理复杂的文本格式,包括插入图片、设置文本样式(如字体、大小、颜色)以及处理超链接。在这个记事本程序中,工具栏按钮的点击事件会触发相应的功能,比如改变字体颜色,可能通过...
老师给的例子,实现了字体设置。使用了JTextPane,主要还是一个实现设置字体的例子
Java编写的Java简易编辑器是一款基于Java语言开发的文本编辑工具,主要针对Java程序员,提供基本的代码编辑、编译和执行功能。这个编辑器旨在简化小型Java项目的开发流程,帮助初学者或开发者快速测试代码片段,而...
- 解决了字体颜色设置的问题,确保监听器的正确设置。 - 通过哈希表简单定义关键字和类库名,实现基本的高亮功能。 在这个项目中,开发者需要熟悉Java Swing库,理解GUI组件的使用和事件监听机制。同时,还需要...
首先建立到服务器的连接,然后设置请求方法为GET,并读取服务器返回的数据。 5. **HTML解析与渲染**: 收到服务器响应后,数据通常是HTML格式。Java没有内置的HTML解析器,但可以使用第三方库,如Jsoup,来解析...
在技术实现上,课程设计使用了Java AWT和Swing库,例如`JFrame`、`JLabel`、`JTextField`、`JButton`、`JScrollPane`和`JTextPane`等组件,这些是Java GUI编程的基础。此外,还涉及了事件监听(`java.awt.event....
4. **状态持久化**:一个独特之处是,Java记事本能记住用户的偏好设置,比如上次使用的字体和颜色。这涉及到Java的序列化技术,通过实现Serializable接口,将对象的状态保存到文件,然后在启动时反序列化恢复这些...
Java简单记事本是一款基于Java Swing开发的文本编辑器,主要功能包括文本的保存和打开,支持UTF-8编码,提供了基本的文本格式化选项,如设置字体、字号、加粗和斜体,以及常见的剪切、复制和粘贴操作。下面我们将...