gpt4 book ai didi

java - 包装 UI 组件的模式

转载 作者:行者123 更新时间:2023-12-01 23:08:32 25 4
gpt4 key购买 nike

我想将 UI 组件包装在我的 Java 应用程序中,以使我的生产代码独立于具体的 UI 库。我现在有一个问题,如果我想在另一个组件上添加组件,因为包装类不知 Prop 体的 UI 元素。

如何在不暴露底层 UI 库的情况下处理元素的排序?

public abstract class UIComponent {

}

public class UIPanel extends UIComponent {
private JPanel jpanel;

public UIPanel() {
this.jpanel = new JPanel();
}

public void addUIComponent(UIComponent component) {
// how can I add the concrete jbutton from a UIButton
// to the concrete jpanel of this UIPanel?
}
}

public class UIButton extends UIComponent {
private JButton jbutton;

public UIButton() {
this.jbutton = new JButton();
}
}

最佳答案

在 UIComponent 中定义方法

public JComponent getRealComponent();

然后 UIPanel 和 UIButton 重写该方法并相应地返回 JPanel 和 JButton。

方法应该是这样的

public void addUIComponent(UIComponent component) {
getRealComponent().add(component.getRealComponent());
}

关于java - 包装 UI 组件的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22404265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com