/*
* @(#)ComboBoxSeparatorProblem.java 1.0 2011-07-04
*
* Copyright (c) 2011 Werner Randelshofer, Immensee, Switzerland.
* All rights reserved.
*
* You may not use, copy or modify this file, except in compliance with the
* license agreement you entered into with Werner Randelshofer.
* For details see accompanying license terms.
*/
package test;
/**
* {@code ComboBoxSeparatorProblem}.
*
* @author Werner Randelshofer
* @version 1.0 2011-07-04 Created.
*/
import ch.randelshofer.quaqua.*;
import java.awt.*;
import javax.swing.*;
public class ComboBoxSeparatorProblem {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(QuaquaManager.getLookAndFeelClassName());
}
catch (Exception e) {
e.printStackTrace();
}
final JComboBox comboBox = new JComboBox(new Object[] {
"One", "Two", "Three"
});
comboBox.setRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
final Component renderer = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (index == 1) {
final JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel("--- a separator in a combobox ---"), BorderLayout.NORTH);
panel.add(renderer, BorderLayout.CENTER);
panel.setOpaque(true);
return panel;
}
return renderer;
}
});
final JFrame frame = new JFrame();
frame.setContentPane(comboBox);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}