jComboBox
を反転させると、ポップアップメニューボタンが右側ではなく左側に表示されます。jcomboboxを反転させるのはどうですか?
私が試みた:
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
が、ここでは結果である:
jComboBox
を反転させると、ポップアップメニューボタンが右側ではなく左側に表示されます。jcomboboxを反転させるのはどうですか?
私が試みた:
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
が、ここでは結果である:
ドロップダウン矢印の位置をJComboBox
関連付けられComboBoxUI
によって制御されます。通常、この動作を変更する場合は、ComboBoxUI
の独自の実装を作成する必要があります。幸いにも、あなたの特定の必要性のために別の方法があります。デフォルトComboBoxUI
は、デフォルトで右側の矢印を配置するためにコード化されていますが、コンポーネントの向きを右から左に変更された場合には、左の矢印を配置します:
JComboBox<String> comboBox = new JComboBox<>(new String[]{"One", "Two", "Three"});
comboBox.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
として、これはコンポーネント全体の方向に影響しますが、コンボボックス内のリストボックスアイテムの向きには影響しません。この調整を行うには、コンポーネントに関連付けられたListCellRenderer
のapplyComponentOrientation
に電話してください。カスタムレンダラーをお持ちの場合は、そのオブジェクトのメソッドを呼び出すことができます。デフォルトのレンダリングで、それは少しトリッキーが、まだ可能です:あなたのコンボボックスが編集可能な場合
ListCellRenderer<? super String> defaultRenderer = comboBox.getRenderer();
ListCellRenderer<String> modifiedRenderer = new ListCellRenderer<String>() {
@Override
public Component getListCellRendererComponent(JList<? extends String> list, String value, int index,
boolean isSelected, boolean cellHasFocus) {
Component component = defaultRenderer.getListCellRendererComponent(
list, value, index, isSelected, cellHasFocus);
component.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
return component;
}
};
comboBox.setRenderer(modifiedRenderer);
最後に、あなたはおそらく、同様エディタコンポーネントにapplyComponentOrientation
を使用する必要があります。
コンボボックスを残して左に置いておいてください。コンボボックスを悪い外観に残してください –
@MichaelShenoudaその場合は、質問を編集して何を明確にすることができれば助けになりますあなたは '反転した'ことを意味します。あなたの質問は現在、右ではなく左にポップアップメニューボタンを配置することだけが言及されています。 –
私は私の質問を再編集しました、あなたは今私を理解するつもりだと思います。 –