I'm trying to make a drop down menu of sorts by having buttons in a
combobox. I got the buttons to render, but they don't seem to have
any button functionality. I'm still relatively new to java and even
newer to swing, any help would be greatly appreciated.
mport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CustomRendererMenu extends JPanel {
ImageIcon[] images;
String[] choiceStrings = {"Selected", "All", "Column", "Row"};
public CustomRendererMenu() {
super(new BorderLayout());
Integer[] intArray = new Integer[choiceStrings.length];
for (int i = 0; i < choiceStrings.length; i++) {
intArray[i] = new Integer(i);
}
JComboBox buttonList = new JComboBox(intArray);
ComboBoxRenderer renderer= new ComboBoxRenderer();
renderer.setPreferredSize(new Dimension(50, 50));
buttonList.setRenderer(renderer);
add(buttonList, BorderLayout.PAGE_START);
setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Drop Down Menu Chooser");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JComponent newContentPane = new CustomRendererMenu();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
class ComboBoxRenderer extends JLabel
implements ListCellRenderer {
public ComboBoxRenderer() {
setOpaque(true);
}
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
int selectedIndex = ((Integer)value).intValue();
final String name = choiceStrings[selectedIndex];
JButton choice = new JButton(name);
choice.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("The " + name + "has been pressed.");
}
});
return choice;
}
}
}
Hal Rosser - 12 Jun 2004 02:09 GMT
why not make a pop up menu that shows up when you click the button.
> I'm trying to make a drop down menu of sorts by having buttons in a
> combobox. I got the buttons to render, but they don't seem to have
[quoted text clipped - 76 lines]
> }
> }