在Java中,为JComboBox添加分隔符可以通过自定义一个渲染器(Renderer)来实现。以下是一个简单的示例代码:
import javax.swing.*;
import java.awt.*;
public class JComboBoxSeparator {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> createAndShowGUI());
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("JComboBox Separator Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
model.addElement("Option 1");
model.addElement("Option 2");
model.addElement("Option 3");
model.addElement("Option 4");
JComboBox<String> comboBox = new JComboBox<>(model);
comboBox.setRenderer(new SeparatorRenderer());
frame.getContentPane().add(comboBox, BorderLayout.NORTH);
frame.setVisible(true);
}
private static class SeparatorRenderer extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (index == 2) {
setEnabled(false);
setText("---");
}
return this;
}
}
}
在这个示例中,我们创建了一个名为SeparatorRenderer
的自定义渲染器,并在其中覆盖了getListCellRendererComponent
方法。当索引为2的元素被渲染时,我们将其禁用并设置为分隔符。
这个示例将在JComboBox中添加一个分隔符,并在选项3处显示它。
没有搜到相关的文章