Java Swing 編程 JComboBox 顯示不全問題。
阿新 • • 發佈:2019-04-27
.get 都沒有 etl return turn selected asi pub pre
最近在做Java Swing編程一個小例子。然後遇到JComboBox 寬度固定,而下拉列表比較長,導致顯示不全的問題。
解決的思路想到兩種,1:下拉列表當顯示不全的時候,換行顯示。2:在下拉列表停幾秒後,懸浮框提示信息。
第一種找了很多方法都沒有成功。因此選擇了第二種,具體解決如下:
1.提示框類。
import java.awt.Component; import javax.swing.JComboBox; import javax.swing.JList; import javax.swing.plaf.basic.BasicComboBoxRenderer; class JComboBoxRenderer extends BasicComboBoxRenderer { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (isSelected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); if (-1 < index) { list.setToolTipText((value == null) ? null : value.toString()); } } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setFont(list.getFont()); setText((value == null) ? "" : value.toString()); return this; } }
2.JComboBox 增加 setRenderer 屬性。
JComboBox comboBox = new JComboBox(); comboBox.setBounds(100, 159, 75, 24); comboBox.addItem("測試測試測試測試測試"); comboBox.addItem("測試測試測試測試測試"); comboBox.setRenderer(new CustomComboBoxRenderer()); Panel.add(comboBox);
3.顯示效果如下:
原創不易,多多打賞。
Java Swing 編程 JComboBox 顯示不全問題。