`
jy00509336
  • 浏览: 243519 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

JTextArea->JTextPane 解决文字对齐方式的问题

阅读更多

转载自:http://www.blogjava.net/cerulean/archive/2010/03/10/314976.html

引子只是个小问题,JTextArea多行文本,想设置文字的对齐方式为居中对齐,却发现死活没有合适有效的方法,又试了JTextField和JLabel,都不理想。搜了一溜够看到JTextPane的解决方法,其实真是有点儿大材小用了。JTextPane里可以设置style,对齐方式、字体字号、颜色等等,并且还可以设置style的作用范围,挺方便的。另外,想把文字区域背景设为透明的也是在API中找了一通,才发现敢情就是setOpacity,呃,对这个单词实在是太不敏感了。。。。 

把在coderanch上搜的例子贴在这里吧,以防以后忘了:

 

import java.awt.*;  
import javax.swing.*;  
import javax.swing.text.*;  
   
public class Styling  
{  
    
public Styling()  
    
{  
        String text 
= "To refer to locations within the sequence, the " +  
                      
"coordinates used are the location between two " +  
                      
"characters.\nAs the diagram below shows, a location " +  
                      
"in a text document can be referred to as a position, " +  
                      
"or an offset. This position is zero-based.";  
   
        SimpleAttributeSet aSet 
= new SimpleAttributeSet();   
        StyleConstants.setForeground(aSet, Color.blue);  
        StyleConstants.setBackground(aSet, Color.orange);  
        StyleConstants.setFontFamily(aSet, 
"lucida bright italic");  
        StyleConstants.setFontSize(aSet, 
18);  
   
        SimpleAttributeSet bSet 
= new SimpleAttributeSet();  
        StyleConstants.setAlignment(bSet, StyleConstants.ALIGN_CENTER);  
        StyleConstants.setUnderline(bSet, 
true);  
        StyleConstants.setFontFamily(bSet, 
"lucida typewriter bold");  
        StyleConstants.setFontSize(bSet, 
24);  
   
        JTextPane textPane 
= new JTextPane();  
        textPane.setText(text);  
        StyledDocument doc 
= textPane.getStyledDocument();  
        doc.setCharacterAttributes(
105, doc.getLength()-105, aSet, false);  
        doc.setParagraphAttributes(
0104, bSet, false);  
   
        JFrame f 
= new JFrame();  
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        f.add(
new JScrollPane(textPane));  
        f.setSize(
400,400);  
        f.setLocation(
200,200);  
        f.setVisible(
true);  
    }
  
   
    
public static void main(String[] args)  
    
{  
        
new Styling();  
    }
  
}
  
分享到:
评论

相关推荐

    JAVA-----JTextPane实例

    ### JAVA中的JTextPane:一个全面的解析与实例讲解 在Java Swing库中,`JTextPane`是一个功能强大的文本组件,它允许显示和编辑富文本格式,包括字体、颜色和排版等特性。本文将深入探讨`JTextPane`的基本概念、...

    Swing-->SQL

    Swing中的主要组件包括JFrame(窗口)、JButton(按钮)、JLabel(标签)、JTextField(文本框)、JTextArea(多行文本框)、JTable(表格)、JTree(树形结构)等。开发者可以通过这些组件组合,实现各种复杂的功能...

    JTextPane--insert-Image.zip_JTextPane

    `JTextPane`相比于基础的`JTextArea`,增加了对富文本的支持,如字体样式、颜色、链接等。在`JTextPane`中插入图片,通常需要使用`SimpleAttributeSet`和`StyledEditorKit`来实现。以下是一些关键步骤: 1. **创建`...

    Java编程技术课件:08Swing UI编程(6学时).pptx

    通过New -> Other -> MyEclipse -> Swing -> Matisse Form,开发者可以选择创建一个新的JFrame。在生成的代码中,`helloJFrame`类的`initComponents()`方法自动设置了布局管理器。这里使用的是`javax.swing....

    JTextPane 关键字变色

    首先,`JTextPane`不同于简单的`JTextArea`,它可以处理更复杂的文本格式,如字体、颜色、样式等。要实现关键字变色,我们需要使用` StyledDocument `接口,它是`JTextPane`内部文档的抽象表示,支持样式和格式的...

    完整版优质java课件 Java基础入门教程 Java编程技术09 Swing UI编程(6学时)(共80页).ppt

    1. 选择`New` -> `Other` -> `MyEclipse` -> `Swing` -> `Matisse Form`,然后选择`JFrame`模板。 2. 在生成的代码中,我们看到`helloJFrame`类扩展了`javax.swing.JFrame`,并重写了构造函数以及`initComponents()`...

    swing jtextArea滚动条和文字缩放效果

    "swing jtextArea滚动条和文字缩放效果详解" swing jtextArea是Java Swing中的一种组件,用于显示多行文本。今天,我们将详细介绍swing jtextArea滚动条和文字缩放效果,并提供了相关的代码实例。 首先,让我们...

    JAVA--文字随机移动

    Timer timer = new Timer(50, e -> { x++; // 更新x坐标,也可以同时更新y坐标实现上下移动 if (x > frame.getWidth()) { // 边界检查,防止文字移出窗口 x = -getText().length() * 10; // 重置位置 } ...

    java_JTextArea_实现不可修改文本内容、右键菜单

    ### Java Swing JTextArea 实现不可修改文本内容及右键菜单定制 #### 一、概述 在Java Swing开发中,`JTextArea` 是一个非常常用的组件,用于显示或编辑多行文本。有时候,我们可能需要创建一个只读的文本区域或者...

    java 滚动的文字

    SwingUtilities.invokeLater(() -> { new ScrollTextExample().createAndShowGUI(); }); } private void createAndShowGUI() { JFrame frame = new JFrame("Java 滚动文字"); textArea = new JTextArea(10, ...

    操作系统进程调度用JavaGUI模拟

    setTitle("进程调度实验演示--->欧海川制作"); setSize(900,700); ButtonPanel panel=new ButtonPanel(); Container contentPane=getContentPane(); contentPane.add(panel); } } class ButtonPanel ...

    JTextArea 实现行号

    在Java Swing库中,`JTextArea` 是一个用于显示和编辑多行文本的组件。有时候在编程时,我们可能需要为 `JTextArea` 添加行号功能,以方便用户阅读和编辑代码或者数据。这个功能可以通过自定义边框来实现,就像标题...

    重定向log4j日志到jtextarea

    总的来说,将Log4j日志重定向到JTextArea是一种实用的GUI日志展示方式,它可以帮助开发者在桌面应用中实时查看和分析程序运行状态。通过自定义Appender并集成Swing组件,我们可以构建出具有直观反馈的日志系统,提升...

    Java弹出菜单,为JTextArea添加了右键弹出式菜单,实现了复制、粘贴、剪切

    Java 弹出菜单是 Java 图形用户界面编程中的一种常用控件,用于提供给用户更多的交互方式。在 Java 中,弹出菜单通常是通过 JPopupMenu 类来实现的。今天,我们将学习如何使用 Java 弹出菜单来为 JTextArea 添加右键...

    cyber_kustom_component:该框架旨在帮助开发接口,为组件提供易于编辑的特征

    cyber_kustom_component 该项目旨在开发具有可定制的Swing组件的库。... -KToolTip-> ToolTip变体; 实施了新属性(V 0.1.5): KTextField -大写字母属性:设置后,所有输入的字符均为大写; -k_block_white_spac

    改变JTextArea指定位置的背景色

    根据给定的信息,本文将详细解释如何通过Java Swing框架中的`JTextArea`组件来实现更改特定文本区域背景颜色的功能。 ### 一、项目背景与需求分析 #### 1.1 项目背景 在开发图形用户界面(GUI)应用时,经常需要对...

    java swing-JTextArea的使用

    JTextArea是Swing库提供的一个多行文本编辑框组件,可以用于在GUI应用程序中显示和编辑大段文本。

    hexeditor:基于 jtextarea 的十六进制编辑器组件

    jmp/jsr 和分支的标签,例如 -> lab: jmp lab: 加载/保存 asm 源。 .byt 也知道字符 (.byt 'h','e','l','l','o')模拟器功能运行、重置和单步执行。 显示和更改寄存器和标志。 反汇编当前指令。 十六进制窗口保存/...

    java实现ftp自动上传文件

    -- Maven --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> <!-- Gradle --> implementation 'commons-net:commons-net:3.6' ``` ...

    java 使用JTextArea组件

    在Java Swing库中,`JTextArea`是一个非常重要的组件,用于在GUI应用程序中显示和编辑多行文本。它主要用于创建类似记事本的文本输入区域,可以用来展示大量的文本数据或者接收用户输入的多行文本。`JTextArea`是`...

Global site tag (gtag.js) - Google Analytics