我刚刚发现这真的很棒 ColorFactory
我在第一个 Swing 项目中使用的类。这真的很酷:我现在可以将主类中的命名颜色(例如“深红色”或“中海蓝 gem ”)传递到 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);
}
)
最佳答案
有几件事可能需要更仔细的审查:
当您计划扩展
JPanel
时,请通过构造函数提供String colorName
并将该名称存储在字段中以供以后引用;面板的backgroundColor
是一个绑定(bind)属性。static factory ,
ColorFactory.getInstance()
,应该重构以使用 initialization-on-demand holder idiom .代码摘自 Lobo Project ,可能已更新。
关于java - 我是否需要其他方法来使用 ColorFactory 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11679985/