在编写了一个控制台应用程序之后(对于这里不值得一提的平凡的I / O任务),我认为我需要让文本变得多彩以便于阅读。我希望将它保存在命令提示符中,对Swing缺乏经验,但据我所知,没有办法做到这一点,我环顾了Swing API并找不到任何东西。
理想情况下,我可以使用
之类的东西for(int i=0; i<aString.length(); i++){
if(aString.charAt(i) == '?'){
String pre = aString.substring(0,i);
String post = aString.substring(i);
aString = pre + red("?") + post; //As you can see by red("?"), I have no idea what I'm doing
}
}
这样我就可以遍历我之前打印的文本,插入着色信息并显示它。
有人能指出我正确的方向吗?方法,类,片段,什么?
答案 0 :(得分:4)
您可以以html格式输出字符串,添加标记,其中包含着色。然后将HTML分配给JLabel或JTextPane。
答案 1 :(得分:1)
Link是一个小例子,可以使用JLabel
中提供的所有功能,包括其中的文字颜色。
如果您只想以不同的颜色显示文字,请:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainClass extends JPanel {
public void paint(Graphics g) {
Dimension d = this.getPreferredSize();
int fontSize = 20;
g.setFont(new Font("TimesRoman", Font.PLAIN, fontSize));
g.setColor(Color.red);
g.drawString("Hello 1", 10, 20);
g.setColor(Color.black);
g.drawString("Hello 2", 30, 50);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new MainClass());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
}
}
答案 2 :(得分:1)