2016-06-10 5 views
0

Ich habe derzeit eine JComboBox, die immer auf den unteren Bildschirmrand eingestellt ist, so dass der Inhalt immer nach oben geht. Da ich möchte, dass es nach oben geht, möchte ich die Richtung des Pfeils auf der ComboBox ändern. Ich mache zur Zeit, dass in etwa so:Behalten der Standardbenutzeroberfläche beim Ändern bestimmter Aspekte

comboBox.setUI(new BasicComboBoxUI() 
{ 
    @Override 
    protected JButton createArrowButton() { 
     return new BasicArrowButton(BasicArrowButton.NORTH); 
    } 
}); 

Aber wenn dies zu tun, die ComboBox auf eine irgendwie abgeblendet Version dreht. Wie könnte ich es so machen, dass es die Standard-ComboBoxUI ist, aber mit dem Pfeil nach oben?

Antwort

2

Wenn Sie sich den Quellcode schauen, werden Sie die Standardimplementierung dieser Methode in der BasicComboBoxUI sehen ist:

protected JButton createArrowButton() { 
    JButton button = new BasicArrowButton(BasicArrowButton.SOUTH, 
           UIManager.getColor("ComboBox.buttonBackground"), 
           UIManager.getColor("ComboBox.buttonShadow"), 
           UIManager.getColor("ComboBox.buttonDarkShadow"), 
           UIManager.getColor("ComboBox.buttonHighlight")); 
    button.setName("ComboBox.arrowButton"); 
    return button; 
} 

Natürlich Überschreiben der BasicComboBoxUI bedeutet, dass Sie die LAF UI verlieren. Zum Beispiel würden Sie die Windows und MAC benutzerdefinierte LAF verlieren. Sie müssen die Benutzeroberfläche für alle LAF, die Sie unterstützen möchten, wirklich überschreiben.

Verwandte Themen