修改方法:
在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,其他的一样
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)