好吧,这就是问题所在。
g.setColor(Color.WHITE);
g.drawString("all your base belong to us",x,y);下面的代码使得显示的字符串是白色的和完全白色的。
我的目标是使字符串的某一部分,例如,我希望在字符串中的单词"base“是一个不同的颜色,黄色在这个例子。
我最可能使用的代码是:
g.drawString("all your #ffd700base belong to us",x,y);该代码试图将文本设置为黄色,从“base”一直到句子末尾。
虽然它的输出是:
http://i.stack.imgur.com/lB2WC.png
忽略背景,只需看字符串。“# The 700”成为字符串的一部分,然后显示。
这不管用,我找不到解决办法。
发布于 2014-05-11 09:47:42
同样的问题也解决了。请看下面的帖子:
在上述链接中提到的代码更改后的示例代码:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import javax.swing.CellRendererPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class PaintComponentTest extends JPanel {
private static final String s = "<html>all your <font color=\"#ffd700\">base</font> belong to us</html>";
private JLabel renderer = new JLabel(s);
private CellRendererPane crp = new CellRendererPane();
private Dimension dim;
public PaintComponentTest() {
this.setBackground(Color.lightGray);
dim = renderer.getPreferredSize();
this.add(crp);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
renderer.setForeground(Color.WHITE);
crp.paintComponent(g, renderer, this, 10, 10, dim.width, dim.height);
}
private void display() {
JFrame f = new JFrame("PaintComponentTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(this);
f.pack();
f.setSize(200, 70);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new PaintComponentTest().display();
}
});
}
}截图:

https://stackoverflow.com/questions/23591034
复制相似问题