あなたはComboBoxUI
へのアクセスを得るためにJComboBox
をサブクラス化する必要が...あなたはJComboBoxのをサブクラス化する必要があり、
それはそう簡単ではありませんが、解決策があります。あなたは、我々はすべてのコンストラクタの変化は、CustomComboBox
でinit()
を参照してください作る(オブジェクトのインスタンス化の際に、独自のカスタムComboBoxUI
を設定することができません。
ComboBoxUI
をComboboxPopup
へのアクセスを取得する必要があります。私たちは、カスタムで、単にデフォルトComboboxPopup
を置き換えますComboboxPopup
。あなたはComboboxPopup
は、あなたがボタンをクリックするとポップアップし、ドロップダウン・メニューの作成、に責任があることを知っている必要があります。
し、我々は最終的に我々はつかむ、ポップアップからJScrollPane
を調整することができます垂直JScrollBar
と外観を変更します(カスタム幅を設定します)。
public class CustomComboBox<T> extends JComboBox<T> {
public CustomComboBox() {
super();
init();
}
public CustomComboBox(ComboBoxModel<T> aModel) {
super(aModel);
init();
}
public CustomComboBox(T[] items) {
super(items);
init();
}
public CustomComboBox(Vector<T> items) {
super(items);
init();
}
public void init(){
CustomComboBoxUI ccbui = new CustomComboBoxUI();
setUI(ccbui);
}
}
これはあなたがComboboxPopup
(非常に簡単)にアクセスも許可するカスタムComboboxUI
次のとおりです。
public class CustomComboBoxUI extends BasicComboBoxUI{
protected ComboPopup createPopup() {
return new CustomComboBoxPopup(comboBox);
}
}
thankgodカスタムComboboxPopup
ニーズだけで、基本的なコンストラクタをオーバーライドし、唯一の方法は、(変更はのサイズを設定します40ピクセルにscrollpan):
public class CustomComboBoxPopup extends BasicComboPopup{
public CustomComboBoxPopup(JComboBox combo) {
super(combo);
}
@Override
protected void configureScroller() {
super.configureScroller();
scroller.getVerticalScrollBar().setPreferredSize(new Dimension(40, 0));
}
}
は、あなたは、単にそのサイズを調整する必要があるコンボボックスのサイズを設定する
String[] data = new String[]{"a","b","c","d","e","f","g","h","i"};
CustomComboBox<String> comboBox = new CustomComboBox(data);
comboBox.setPreferredSize(new Dimension(50,50)); //set the size you wish
あなたはスクロールバーの幅を制御するUIMangerを使用することができます...さらに助けにもsetting size of scrollerとsetting size of combobox
コードを投稿してください... – Benjamin
サイドノート:これはJavaScriptではありません。Javaはタイプセーフです。文字列を作成するのではなく、 'getItem()'で 'toString()'を呼び出すことができます。文字列を連結するたびに、文字列プールにデータが移入されます。 –
ええと、多分JavaFXはWindowsタブレットで作業するより良い方法でしょうか? JavaFXではCSSを使用して要素のスタイルを設定できるため、http://stackoverflow.com/questions/21379865/how-to-hide-the-down-arrow-button-on-a-combobox-in-javafx ...コンボボックスが小さすぎるようですが、JavaFXが簡単に修正できる他の問題が発生する可能性がありますか? – hamena314