jComboBox
을 튀기려면 어떻게해야합니까? 팝업 메뉴 버튼이 오른쪽이 아닌 왼쪽에 있습니까?jcombobox를 뒤집는 것은 어떻습니까?
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
을 그러나 여기 결과 :
I는 시도
jComboBox
을 튀기려면 어떻게해야합니까? 팝업 메뉴 버튼이 오른쪽이 아닌 왼쪽에 있습니까?jcombobox를 뒤집는 것은 어떻습니까?
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
을 그러나 여기 결과 :
I는 시도
드롭 다운 화살표의 위치는 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
를 사용해야합니다.
시간을내어 도와 주셔서 감사합니다.하지만 버튼 만 뒤집어 놓지 않고 왼쪽에 배치했기 때문에 combobox를 나쁜 모양으로 남겨 두었습니다. –
@MichaelShenouda 그 경우에는 질문을 수정하고 무엇을 명확히 할 수 있습니까? 당신은 '뒤집힌'것을 의미합니다. 귀하의 질문은 현재 오른쪽 대신 팝업 메뉴 버튼을 배치하는 것에 대해서만 언급합니다. –
나는 내 질문을 다시 새겼다. 나는 네가 지금 나를 이해할 것이라고 생각한다. –