我是否需要另一种方法来使用ColorFactory类?

时间:2012-07-27 00:36:50

标签: java swing methods

我刚刚在第一个Swing项目中找到了这个非常棒的ColorFactory类。这真的很酷:我现在可以将我的主要类中的命名颜色(例如“crimson”或“mediumaquamarine”)传递给createContentPane Container方法。

代码:

frame.setContentPane(ContentPaneCreator.createContentPane("darkorange"));`

问题:

我是否需要public final void setBackground(Color color, JPanel contentPane)方法?一切都可以在createContentPane()方法内完成吗?谢谢你的帮助。

import java.awt.Color;
import java.awt.Container;
import javax.swing.JPanel;

public final class ContentPaneCreator extends JPanel {

    private static final long serialVersionUID = 1L;

    public static Container createContentPane(String color) {

        JPanel contentPane = new JPanel();

        // awesome txt to Color conversions using the ColorFactory().getColor();
        // written by The Lobo Project
        new ContentPaneCreator().setBackground(
                new ColorFactory().getColor(color), contentPane);

        contentPane.setOpaque(true);
        return contentPane;
    }

    public final void setBackground(Color color, JPanel contentPane) {
        contentPane.setBackground(color);
    }
)

2 个答案:

答案 0 :(得分:2)

回答你的问题 - 我不明白为什么(或者为什么你需要从头开始,但干草)。

扩展答案:

它应该是:(如果我们正在查看同一段代码)

ColorFactory.getInstance().getColor(colorName);

另外,你在每个实例化中创建颜色贴图,这只是一种浪费。

我也不确定为什么你需要扩展JPanel,但这不是我的代码:P

答案 1 :(得分:2)

有些事情可能会受到更严格的审查: