我希望用户可以使我的程序的某些组件成为主题,以便他们可以在设置用户界面中编辑值,例如背景颜色,笔触或大小,这些更改将在在软件中使用该组件。
如果要更改的值始终相同,那么解决方案将很简单,但它们不是,因为不同的组件可能具有不同的主题"属性。
我想抽象这个解决方案,以便主题组件可以扩展将具有属性更改功能的父Component组。
我目前的想法是创建一个带有update方法的抽象属性类,该方法返回一个布尔值并接受一个String。例如,如果某人正在按某个按钮,则它可能具有边框属性。定义更新方法,使其知道如何基于String更新边框,并且用户将根据用户输入与知道字符串提供的UI进行交互。
public abstract class XProperty
{
public abstract boolean update(String info);
}
我确信有更好或更简单的方法。设计此功能的最佳方法是什么?
答案 0 :(得分:0)
这个答案是基于我对所述问题的理解。 您可以从一个名为Themeable的接口开始,该接口将由具有可更改内容的UI组件类(即背景,边框等)实现.The Themeable接口可以如下所示:
public interface Themeable{
public boolean update(String info);
}
之后,UI组件类可以实现更改各种属性。这方面的一个例子如下:
public abstract class Background extends UIComponent implements Themeable{
private Color color;
public boolean update(String info){
//update the color instance variable
//based on the
从本质上讲,您的UI可以有多个这些UIComponent对象,这些对象根据需要执行不同的实现,您可以使用此更新方法为它们提供新属性。 希望有所帮助。