java中JTextPane 怎么把不同的行,设置为不同的对齐方式,我尝试了一下,怎么都是左对齐呀!

java中JTextPane 怎么把不同的行,设置为不同的对齐方式,我尝试了一下,怎么都是左对齐呀!,第1张

修改方法:

在JTextPane中使用带HTML格式的文本就可实际各部分文本按照不同格式显示的效果。

实际效果:

修改后的代码

import javaawtBorderLayout;

import javaawtContainer;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJScrollPane;

import javaxswingJTextPane;

import javaxswingUIManager;

import javaxswingtextBadLocationException;

import javaxswingtextDefaultStyledDocument;

import javaxswingtextSimpleAttributeSet;

import javaxswingtextStyle;

import javaxswingtextStyleConstants;

import javaxswingtextStyleContext;

import javaxswingtextStyledDocument;

public class Test3 {

//TODO 修改代码

private static String message = "<p align='left'>In the beginning, there was COBOL, </p>"

+ "<p align='center'>then there was FORTRAN, </p>"

+ "<p align='right'>then there was BASIC, </p>"

+ "and now there is Java\n";

public static void main(String[] args) {

String title = (argslength == 0 "JTextPane Example" : args[0]);

JFrame frame = new JFrame(title);

Container content = framegetContentPane();

StyleContext context = new StyleContext();

StyledDocument document = new DefaultStyledDocument(context);

Style style = contextgetStyle(StyleContextDEFAULT_STYLE);

StyleConstantssetAlignment(style, StyleConstantsALIGN_LEFT);// 左对齐

try {

documentinsertString(documentgetLength(), message, style);

}

catch (BadLocationException badLocationException) {

Systemerrprintln("Oops");

}

SimpleAttributeSet attributes = new SimpleAttributeSet();

StyleConstantssetAlignment(attributes, StyleConstantsALIGN_RIGHT);//右对齐

documentsetParagraphAttributes(0, documentgetLength(), style, true);

try {//为什么没有右对齐呀

documentinsertString(documentgetLength(), "Hello Java",

attributes);

}

catch (BadLocationException badLocationException) {

}

JTextPane textarea = new JTextPane();

//TODO 新增代码开始

textareasetContentType("text/html");

textareasetText(message);

//TODO 新增代码结束

textareasetEditable(false);

//TODO 被注释代码

/

textareasetBackground(UIManagergetColor("labelbackground"));

textareasetFont(UIManagergetFont("label"));

textareasetDocument(document);

/

JScrollPane textAreascrollPane = new JScrollPane(textarea);

contentadd(textAreascrollPane, BorderLayoutCENTER);

JLabel AliasNameLabel = new JLabel("Local Name: ");

contentadd(AliasNameLabel, BorderLayoutSOUTH);

framesetSize(300, 200);

framesetVisible(true);

framesetLocationRelativeTo(null);

framesetDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);

}

}

欢迎继续交流。

可以用Jlabel或者或者AbstractButton的子类来达到这个目的下面给你一点用Jlabel的代码 JLabel label = new JLabel();
labelsetIcon(new ImageIcon("路径"));这样就可以了,AbstractButton的方法也是一样的,,都是setIcon;如果要把放在中间,那么用下面的代码: labelsetHorizontalAlignment(SwingUtilitiesCENTER);
labelsetVerticalAlignment(SwingUtilitiesCENTER);这样,就在中间了上面的代码,第一行是设置label的水平对齐为剧中,第二行是设置垂直对齐为剧中 还有一种方法是就是继承JComponent类重写paint方法,自己绘制,但是这种方法对你的需求来说,是完全没必要的 关于相关的信息,你可以用 ToolkitgetDefaultToolkit()getImage("路径");来创建一张只读,要注意的是,这种方式获得的是不可修改的,如果要获得可以修改的,你可以用ImageIO类来创建BufferedImage 希望这些信息可以帮到你

int 值为SwingConstants 中定义的以下常量之一:
LEFT左对齐
、CENTER居中对齐
、RIGHT右对齐
、LEADING使用从左到右和从右到左的语言的文本开始边对齐
、TRAILING从左到右和从右到左的语言的文本结束边对齐
使用方法:SwingConstants LEFT,其他的一样


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13378390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存