如何在 Java 中設定 JComboBox 選項的框線?
JComboBox 是JComponent 類的子類,它是一個 **文字域** 和 **下拉列表** 的組合,使用者可以從中選擇一個值。當用戶對組合框操作時,JComboBox 可以生成ActionListener、ChangeListener 和**ItemListener 介面。透過呈現一個JComboBox (它擴充套件了**DefaultListCellRender** 類)並覆蓋**getListCellRendererComponent() 方法,我們可以為 JComboBox 中的選項設定框線。
語法
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus)
示例
import java.awt.*;
import javax.swing.*;
public class JComboBoxTest extends JFrame {
public JComboBoxTest() {
setTitle("JComboBox Test");
String[] cities = {"Hyderabad", "Mumbai", "Pune", "Bangalore", "Chennai", "Coimbatore"};
JComboBox jcb = new JComboBox(cities);
jcb.setRenderer(new CustomComboBoxRenderer());
add(jcb, BorderLayout.NORTH);
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
class CustomComboBoxRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel lbl = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
lbl.setBorder(BorderFactory.createEmptyBorder(7, 7, 7, 7));
lbl.setBackground(Color.lightGray);
return lbl;
}
}
public static void main(String[] args) {
new JComboBoxTest();
}
}輸出
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP