我想将UI组件包装在Java应用程序中,以使生产代码独立于具体的UI库。我现在有一个问题,如果我想在另一个组件上添加组件,因为包装类不知道具体的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());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句