2015-02-23 58 views
0

我目前正在开发一个专为Windows 8平板电脑设计的javafx应用程序。我为整个应用程序使用JMetro主题(一点点定制)。JavaFX 8:与全屏弹出式组合框

我想组合框的行为就像在Android上一样,打开一个全屏弹出列表。

我认为更好更简单的解决方案是创建一个新的皮肤,并用-fx-skin css来插入它?之后,我“只”必须创建我的弹出窗口,对单击事件和组合框的setValue作出反应。我查看了ComboBoxListViewSkin的源代码,但是我看不到要更改的内容如果我将其扩展...

我有一个内置解决方案来显示全屏组合框弹出窗口吗?

任何帮助表示赞赏。感谢阅读。

回答

0

解决方案非常简单,但对于初学者来说并不明显。

public class TouchComboBoxListViewSkin<T> extends ComboBoxListViewSkin<T> { 
    private ComboBox<T> comboBox; 
    public TouchComboBoxListViewSkin(ComboBox<T> comboBox) { 
     super(comboBox); 
     this.comboBox = comboBox; 
    } 


    @Override 
    public void show() { 
     //TODO use the accessible protected popup to display the list of items 
    } 
} 

和一点点的CSS来使用这个皮肤:

.combo-box { 
    -fx-skin: "path.to.TouchComboBoxListViewSkin"; 
} 

随意评论是,这是不正确的方法。