Das Problem: Ich habe eine Combo-Box, die als Teil einer Swing-Anwendung in einen festen Platz passen muss. Der Inhalt kann jedoch ziemlich lang sein. Ich möchte, dass die Box selbst eine feste Größe hat und den Inhalt abschneidet. Wenn der Abwärtspfeil angeklickt wird, möchte ich, dass es sich ähnlich wie eine HTML-Auswahl verhält und ein Feld anzeigt, das lang genug ist, um den längsten Eintrag als Drop-Down zu verwenden. Der ListCellRenderer könnte der Weg sein, auf diesem zu gehen; Ich bin mir nicht sicher.JComboBox mit größerer Drop-Down-Breite
Es kann auch sein, dass ich eine Art von Implementierung von javax.swing.plaf.basic.ComboPopup und meine eigene ComboBoxUI brauche. Ich habe den SwingUtilities-Code durchforstet, um zu verstehen, wie der DefaultListCellRenderer seine Berechnungen durchführt. Es verwendet ein JLabel, und das BasicLabelUI ruft SwingUtilities.layoutCompoundLabel (eventuell im Aufruf-Stack) auf, das den Clipping ausführt. BasicComboPopup, die einzige Implementierung von ComboPopup im Java 6-Code, den ich durchforstete, schien zu delegieren: JList.computeVisibleRect (Komponente c, Rectangle visibleRect)
Hat jemand das schon mal gemacht? Irgendwelche Zeiger?
Dort _was_ ein guter Ausgangspunkt ... –
@CostisAivalis behoben, dass mit Wayback-Maschine. –
Wow! Großartige Idee! –