如何更改JScrollPane内容的颜色?

时间:2017-05-03 14:30:19

标签: java swing jscrollpane

我想使用更改的文本颜色,文本框中的背景和自己的字体来制作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();
	}
}

1 个答案:

答案 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();
    }
}