-
2021-03-09 17:44:27
展开全部
java swing 中JTEXTAREA不能改变字体颜色,它是纯文本组件,可以使用JTEXTPANE,通过操作DOCUMENT文档来控制JTEXTPANE显示的内容,下面的代码在一个32313133353236313431303231363533e58685e5aeb931333337623462JTEXTPANE中显示了一个图标,三行文字,每行用不同的颜色和大小显示:IMPORT JAVAX.SWING.*;
IMPORT JAVA.AWT.*;
IMPORT JAVA.AWT.EVENT.*;
IMPORT JAVAX.SWING.TEXT.*;
IMPORT JAVA.IO.*;
PUBLIC CLASS TEST {
JFRAME FRAME;
JTEXTPANE TEXTPANE;
FILE FILE;
ICON IMAGE;
PUBLIC TEST(){
FRAME = NEW JFRAME("JTEXTPANE");
TEXTPANE = NEW JTEXTPANE();
FILE = NEW FILE("./CLASSES/TEST/ICON.GIF");
IMAGE = NEW IMAGEICON(FILE.GETABSOLUTEFILE().TOSTRING());
}
PUBLIC VOID INSERT(STRING STR, ATTRIBUTESET ATTRSET) {
DOCUMENT DOC = TEXTPANE.GETDOCUMENT();
STR ="\N" + STR ;
TRY {
DOC.INSERTSTRING(DOC.GETLENGTH(), STR, ATTRSET);
}
CATCH (BADLOCATIONEXCEPTION E) {
SYSTEM.OUT.PRINTLN("BADLOCATIONEXCEPTION: " + E);
}
}
PUBLIC VOID SETDOCS(STRING STR,COLOR COL,BOOLEAN BOLD,INT FONTSIZE) {
SIMPLEATTRIBUTESET ATTRSET = NEW SIMPLEATTRIBUTESET();
STYLECONSTANTS.SETFOREGROUND(ATTRSET, COL);
//颜色
IF(BOLD==TRUE){
STYLECONSTANTS.SETBOLD(ATTRSET, TRUE);
}//字体类型
STYLECONSTANTS.SETFONTSIZE(ATTRSET, FONTSIZE);
//字体大小
INSERT(STR, ATTRSET);
}
PUBLIC VOID GUI() {
TEXTPANE.INSERTICON(IMAGE);
SETDOCS("第一行的文字",COLOR.RED,FALSE,20);
SETDOCS("第二行的文字",COLOR.BLACK,TRUE,25);
SETDOCS("第三行的文字",COLOR.BLUE,FALSE,20);
FRAME.GETCONTENTPANE().ADD(TEXTPANE, BORDERLAYOUT.CENTER);
FRAME.ADDWINDOWLISTENER(NEW WINDOWADAPTER() {
PUBLIC VOID WINDOWCLOSING(WINDOWEVENT E) {
SYSTEM.EXIT(0);
}});
FRAME.SETSIZE(200,300);
FRAME.SETVISIBLE(TRUE);
}
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TEST TEST = NEW TEST();
TEST.GUI();
}
}
更多相关内容 -
Jtextarea如何设置不同字体、颜色
2021-03-08 16:07:30// 设置字体的默认颜色为黑色; public ArtFont() { super("字体设置"); // 设置默认字体 boldStyle = 0; italicStyle = 0; underlineStyle = 0; fontSizeStyle = 10; fontNameStyle = "宋体"; font = new Font...展开全部
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ArtFont extends JFrame implements ActionListener {
JComboBox fontType, fontSize;
JCheckBox boldBx;// 粗体按钮32313133353236313431303231363533e4b893e5b19e31333234333364
JCheckBox italicBx;// 斜体按钮
JButton colorBtn;// 颜色按钮;
String[] fontNames;// 字体名称;
String[] fontSizes;// 字体尺寸;
JLabel label;// 输入提示标签;
JTextField inputText;// 文字输入框;
JTextArea txtArea;// 文字显示区;
JPanel fontPanel;// 字体设置;
JPanel showPanel;// 显示效果区
Font font;
int boldStyle, italicStyle, underlineStyle;
int fontSizeStyle;
String fontNameStyle;
Color colorStyle = Color.black;// 设置字体的默认颜色为黑色;
public ArtFont() {
super("字体设置");
// 设置默认字体
boldStyle = 0;
italicStyle = 0;
underlineStyle = 0;
fontSizeStyle = 10;
fontNameStyle = "宋体";
font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle);
fontPanel = new JPanel();
fontPanel.setLayout(new FlowLayout());
// 设置字体名字
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
fontNames = ge.getAvailableFontFamilyNames();// 获得系统中所有字体的名字;
fontType = new JComboBox(fontNames);
fontType.setEditable(false);
fontType.setMaximumRowCount(10);
fontType.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
// 实现监听字体名字改变的事件
fontNameStyle = (String) e.getItem();// 程序段1
font = new Font(fontNameStyle, boldStyle + italicStyle,
fontSizeStyle);
txtArea.setFont(font);
}
});
// 设置字体大小
fontSizes = new String[63];
for (int i = 0; i < 63; i++) {
fontSizes[i] = Integer.toString((i + 10));
}
fontSize = new JComboBox(fontSizes);
fontSize.setEditable(false);
fontSize.setMaximumRowCount(10);
fontSize.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
// 实现监听字体大小改变的方法
// 程序段2
fontSizeStyle =Integer.parseInt(e.getItem().toString());
font = new Font(fontNameStyle, boldStyle + italicStyle,
fontSizeStyle);
txtArea.setFont(font);
}
});
// 设置粗体选择按钮;
boldBx = new JCheckBox("粗体");
boldBx.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
// 实现监听选择粗体状态改变的方法
if(e.getStateChange()==1) boldStyle=1;
else boldStyle=0;
font = new Font(fontNameStyle, boldStyle + italicStyle,
fontSizeStyle);
txtArea.setFont(font);// 程序段3
}
});
// 设置斜体选择按钮;
italicBx = new JCheckBox("斜体");
italicBx.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
// 实现监听选择斜体状态改变的方法
if(e.getStateChange()==1) italicStyle=2;
else italicStyle=0;
font = new Font(fontNameStyle, boldStyle + italicStyle,
fontSizeStyle);
txtArea.setFont(font);// 程序段4
}
});
// 设置颜色选择;
colorBtn = new JButton("颜色");
colorBtn.addActionListener(this);
// 设置字体面板;
fontPanel.add(fontType);
fontPanel.add(fontSize);
fontPanel.add(boldBx);
fontPanel.add(italicBx);
fontPanel.add(colorBtn);
// 设置输入提示标签
label = new JLabel("输入");
// 设置文本输入框;
inputText = new JTextField(30);
inputText.addActionListener(this);
// 设置文本显示区;
txtArea = new JTextArea(10, 80);// 20行80列;
txtArea.setFont(font);
// 设置文本面板;
showPanel = new JPanel();
showPanel.add(label);
showPanel.add(inputText);
showPanel.setLayout(new FlowLayout());
showPanel.add(new JScrollPane(txtArea));
// 设置容器;
Container container = getContentPane();
container.setLayout(new BorderLayout());
container.add(fontPanel, BorderLayout.NORTH);
container.add(showPanel, BorderLayout.CENTER);
setSize(500, 300);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == colorBtn) {// 改变颜色
colorStyle = JColorChooser.showDialog(this, "选择字体颜色", colorStyle);
colorBtn.setForeground(colorStyle);
txtArea.setForeground(colorStyle);
} else if (e.getSource() == inputText) {// 将输入文字在文字显示区表示;
txtArea.setText(inputText.getText());
}
}
public static void main(String args[]) {
ArtFont artFont = new ArtFont();
artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
-
Java如何在JTextArea中更改文本颜色?
2021-02-26 21:15:48应用于单个字符的设置适用于中的整个文档JTextArea。但随着JTextPane或JEditorPane你有选择,而影响了你String Literals按照自己的喜好。在JTextPane的帮助下,您可以这样操作:import java.awt.*;import java.awt....小编典典
JTextArea是为了娱乐Plain Text。应用于单个字符的设置适用于中的整个文档JTextArea。但随着JTextPane或JEditorPane你有选择,而影响了你String Literals按照自己的喜好。在JTextPane的帮助下,您可以这样操作:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.AttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
public class TextPaneTest extends JFrame
{
private JPanel topPanel;
private JTextPane tPane;
public TextPaneTest()
{
topPanel = new JPanel();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
EmptyBorder eb = new EmptyBorder(new Insets(10, 10, 10, 10));
tPane = new JTextPane();
tPane.setBorder(eb);
//tPane.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
tPane.setMargin(new Insets(5, 5, 5, 5));
topPanel.add(tPane);
appendToPane(tPane, "My Name is Too Good.\n", Color.RED);
appendToPane(tPane, "I wish I could be ONE of THE BEST on ", Color.BLUE);
appendToPane(tPane, "Stack", Color.DARK_GRAY);
appendToPane(tPane, "Over", Color.MAGENTA);
appendToPane(tPane, "flow", Color.ORANGE);
getContentPane().add(topPanel);
pack();
setVisible(true);
}
private void appendToPane(JTextPane tp, String msg, Color c)
{
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);
aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console");
aset = sc.addAttribute(aset, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED);
int len = tp.getDocument().getLength();
tp.setCaretPosition(len);
tp.setCharacterAttributes(aset, false);
tp.replaceSelection(msg);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new TextPaneTest();
}
});
}
}
2020-03-06
-
请问如何在JTextArea中更改文本颜色?
2021-03-17 23:11:08既然是可能的用途Highlighter(或HTML)用于JTextArea,此api实现了样式文本的简化选项。importjava.awt.*;importjavax.swing.*;importjavax.swing.text.*;publicclassTextPaneHighlighting{...既然是可能的用途Highlighter(或HTML)用于JTextArea,此api实现了样式文本的简化选项。import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class TextPaneHighlighting {
private static final long serialVersionUID = 1L;
private Highlighter.HighlightPainter cyanPainter;
private Highlighter.HighlightPainter redPainter;
public TextPaneHighlighting() {
JFrame frame = new JFrame();
JTextPane textPane = new JTextPane();
textPane.setText("one\ntwo\nthree\nfour\nfive\nsix\nseven\neight\n");
JScrollPane scrollPane = new JScrollPane(textPane);
frame.add(scrollPane, BorderLayout.CENTER);// Highlight some text
cyanPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.cyan);
redPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.red);
try {
textPane.getHighlighter().addHighlight(0, 3, DefaultHighlighter.DefaultPainter);
textPane.getHighlighter().addHighlight(8, 14, cyanPainter);
textPane.getHighlighter().addHighlight(19, 24, redPainter);
} catch (BadLocationException ble) {
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(300, 200));
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TextPaneHighlighting tph = new TextPaneHighlighting();
}
});
}
}
相比较JTextPane还有更多的选项,例如,用HTML或不使用HTML、字体或通过使用HTML或直接将另一个JComponent放入(也知道JTextArea,但是.)import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class Fonts implements Runnable {
private String[] fnt;
private JFrame frm;
private JScrollPane jsp;
private JTextPane jta;
private int width = 450;
private int height = 300;
private GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
private StyledDocument doc;
private MutableAttributeSet mas;
private int cp = 0;
private Highlighter.HighlightPainter cyanPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.cyan);
private Highlighter.HighlightPainter redPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.red);
private Highlighter.HighlightPainter whitePainter = new DefaultHighlighter.DefaultHighlightPainter(Color.white);
private int _count = 0;
private int _lenght = 0;
public Fonts() {
jta = new JTextPane();
doc = jta.getStyledDocument();
jsp = new JScrollPane(jta);
jsp.setPreferredSize(new Dimension(height, width));
frm = new JFrame("awesome");
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setLayout(new BorderLayout());
frm.add(jsp, BorderLayout.CENTER);
frm.setLocation(100, 100);
frm.pack();
frm.setVisible(true);
jta.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
fnt = ge.getAvailableFontFamilyNames();
mas = jta.getInputAttributes();
new Thread(this).start();
}
@Override
public void run() {
for (int i = 0; i
StyleConstants.setBold(mas, false);
StyleConstants.setItalic(mas, false);
StyleConstants.setFontFamily(mas, fnt[i]);
StyleConstants.setFontSize(mas, 16);
dis(fnt[i]);
try {
Thread.sleep(75);
} catch (Exception e) {
e.printStackTrace();
}
StyleConstants.setBold(mas, true);
dis(fnt[i] + " Bold");
try {
Thread.sleep(75);
} catch (Exception e) {
e.printStackTrace();
}
StyleConstants.setItalic(mas, true);
dis(fnt[i] + " Bold & Italic");
try {
Thread.sleep(75);
} catch (Exception e) {
e.printStackTrace();
}
StyleConstants.setBold(mas, false);
dis(fnt[i] + " Italic");
try {
Thread.sleep(75);
} catch (Exception e) {
e.printStackTrace();
}
}
jta.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
public void dis(String s) {
_count++;
_lenght = jta.getText().length();
try {
doc.insertString(cp, s, mas);
doc.insertString(cp, "\n", mas);
} catch (Exception bla_bla_bla_bla) {
bla_bla_bla_bla.printStackTrace();
}
if (_count % 2 == 0) {
try {
jta.getHighlighter().addHighlight(1, _lenght - 1, cyanPainter);
} catch (BadLocationException bla_bla_bla_bla) {
}
} else if (_count % 3 == 0) {
try {
jta.getHighlighter().addHighlight(1, _lenght - 1, redPainter);
} catch (BadLocationException bla_bla_bla_bla) {
}
} else {
try {
jta.getHighlighter().addHighlight(1, _lenght - 1, whitePainter);
} catch (BadLocationException bla_bla_bla_bla) {
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Fonts fs = new Fonts();
}
});
}
}
-
改变JTextArea指定位置的背景色
2011-12-02 12:05:31一个改变JTextArea指定位置文本的背景色的例子 -
java Swing设置文本框文字颜色和字体
2021-02-12 21:35:37在java中文本编辑器单独设置文字的控件有个JTextPane,而通常使用的JTextArea似乎不能设置所选文字的颜色和字体。//实例化一个文本编辑的控件JTextPane editorPane=new JTextPane();//根据所选颜色进行设置... -
怎样设置JTextArea 文本域中选中的文字的颜色和选择区域背景颜色
2016-07-13 21:52:34JTextArea有个setSelectedTextColor(Color c)方法和setSelectionColor(Color c)方法,分别设置JTextArea选中文字和背景颜色。 -
如何在JTextArea中更改文本颜色?
2021-03-13 10:54:47既然是可能的用途Highlighter(或HTML)用于JTextArea,此api实现了样式文本的简化选项。importjava.awt.*;importjavax.swing.*;importjavax.swing.text.*;publicclassTextPaneHighlighting{... -
java – 如何在JTextPane中将每个字符设置为不同的颜色/背景颜色?
2021-03-16 19:04:04如果要更改文本框中每个字符的样式,这里是一个完整的随机方式来执行.您为每个字符创建一个不同的属性集.由你找到适当的组合(前景/背景对比,字符大小不同等等).您还可以存储已应用的不同样式,以使两次不使用相同的... -
JTextArea怎样将文本域设置为透明/半透明
2019-09-13 23:26:53JTextArea怎样将文本域设置为透明/半透明方法: 1、把JTextArea先设置为透明: JTextArea.setOpaque(false); 2、如果JTextArea是放在JScrollPane里,需要透明的话,还要这样: scrollPane.setOpaque(fa... -
java swing中的JTextArea边框
2021-02-13 00:15:54有一对夫妇的方式,你可能能够做到这一点,你可以只需将边界后的边界应用于框架或JTextArea或者您可以支持根据您的需求根据您的需要将Border的值转换为任意方法我的选择是考虑使用构建器模式,这将允许您提供您感... -
Java Swing - 如何设置选定的文本颜色
2021-02-26 17:42:21import java.awt.Color;import javax.swing.JFrame;import javax.swing....import javax.swing.JTextArea;import javax.swing.WindowConstants;import javax.swing.text.DefaultCaret;public class Main {p... -
java编程中如何实现把textarea中一部分文字改变字体或颜色?
2021-02-28 11:49:59JTextArea是不能改变部分文字属性的,你用JTextPane作为文本输入区域就可以了。给你个例子:import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.text.*;public class DocColorTest... -
关于在java文本框类型组件改变字体颜色
2021-03-10 01:51:381.由于java可视化常用的文本框组件,比如JTextArea,JTextField属于纯文本类型,类似于电脑中的txt文本文件,最多可以设置字体的格式和大小,不能改变字体颜色,所以这就需要另外一种叫做JTextPane的组件简单源码如下... -
JTextArea如何改变单行字体颜色
2011-09-28 00:15:20JTextArea本身不具备这样的功能,它是纯文本组件,你可以使用JTextPane,通过操作Document文档来控制JTextPane显示的内容,下面的代码在一个JTextPane中显示了一个图标,三行文字,每行用不同的颜色和大小显示: ... -
Java Swing图形化编程之JTextArea
2021-12-27 00:08:43JTextArea,文本区域。JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外,其他基本用法和 JTextField 基本一致。 构造方法: /** * 参数说明: * text: 默认显示的文本 * rows: 默认可见的行数 ... -
Java Swing JTextArea文本区域的实现示例
2021-02-27 22:32:53JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外,其他基本用法和 JTextField 基本一致。JTextArea 常用构造方法:/*** 参数说明:* text: 默认显示的文本* rows: 默认可见的行数* columns: 默认可见的列... -
Java文本框内文字显示不同颜色、字号等属性【函数调用一键实现】
2020-08-07 22:27:15Hello!你好哇,我是灰小猿! 最近在做聊天室相关项目的开发的时候,需要对文本框中的...这就造成了JTextPane文本域中的内容可以根据需要自行设置属性,从而实现不同文字内容的颜色、字号等属性。 通过以下函数可以直 -
Java中GUI编程之JTextField文本框提示文字设置效果
2021-05-17 19:19:31最近在学GUI编程,遇到了文本框的提示文字问题,想了一下,思路还是很简单的,话不多说,咱们直接开整! 实现效果:当该文本框失去焦点且无内容时,显示该提示文字。如果用户点击了该文本框(该文本框获取到了焦点... -
java字体设置,包括大小,颜色,加粗,下划线,对齐,斜体的设置 | 学步园
2021-03-05 16:38:53}a:0:左,1:中,2:右7、文本字体颜色的设置MutableAttributeSet attr = new SimpleAttributeSet();StyleConstants.setForeground(attr, fg);setCharacterAttributes(editor, attr, false);fg:为color8、文本背景... -
[Java教程]javascript实现颜色渐变
2021-03-14 16:51:39[Java教程]javascript实现颜色渐变0 2013-09-04 20:00:27渐变(Gradient)是美学中一条重要的形式美法则,与其相对应的是突变。形状、大小、位置、方向、色彩等视觉因素都可以进行渐变。在色彩中,色相、明度、纯度也... -
文字字体设置窗口
2021-05-15 21:47:48* 当选择字体样式下拉框中的某一字体样式时,文本域中的文字设置为指定的字体样式。 * 当选择字体大小下拉框中的某一字体大小时,文本域中的文字设置为指定的字体大小。 * 当选择窗体样式下拉框中的某一窗体效果... -
java - JavaFX在禁用的TextArea中更改字体颜色 - 堆栈内存溢出
2021-04-18 00:47:13我尝试编程一个客户端 - 服务器聊天,在我的客户端,我得到了一个TextArea用于所有消息。 TextArea已禁用,因此我想知道如何让它看起来“正常”。我找到了解决方案,如下所示:.text-input >... -
JavaSwing_2.8: JTextArea(文本区域)
2017-07-09 00:10:50JTextArea,文本区域。JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外,其他基本用法和 JTextField 基本一致。