我想使用更改的文本颜色,文本框中的背景和自己的字体来制作JScrollPane,但我的实现不起作用 - 我已经看到了JScrollPane的默认形式(白色背景,标准黑色字体)。谁能告诉我为什么它不起作用以及如何解决它?
public class TextField extends JFrame
{
public TextField()
{
JScrollPane scroll = new JScrollPane(new JTextArea(15, 45));
scroll.setPreferredSize(new Dimension(500, 300));
scroll.getViewport().setBackground(Color.BLUE);
scroll.getViewport().setForeground(Color.YELLOW);
Font font = new Font("Dialog", Font.BOLD + Font.ITALIC, 14);
scroll.getViewport().setFont(font);
add(scroll);
pack();
}
}
答案 0 :(得分:2)
您要自定义的实际视图Component
是使用scroll.getViewport().getView()
而不是scroll.getViewport()
获得的。
public class TextField extends JFrame
{
public TextField()
{
JScrollPane scroll = new JScrollPane(new JTextArea(15, 45));
scroll.setPreferredSize(new Dimension(500, 300));
scroll.getViewport().getView().setBackground(Color.BLUE);
scroll.getViewport().getView().setForeground(Color.YELLOW);
Font font = new Font("Dialog", Font.BOLD + Font.ITALIC, 14);
scroll.getViewport().getView().setFont(font);
add(scroll);
pack();
}
}