Re: Combobox Project: How to put 4 text items in the combobox
On 10/10/2012 2:35 PM, clusardi2k@aol.com wrote:
My intention is to (1) maintain the 4 different colors already in the
project, but to also add the text (Apples, Cars, Shrimp, Moon)
described. Each item of the combobox will have its color plus text.
I want to also invoke one of 4 different methods when someone chooses
one of the colors. Each corresponding method will print the attached
text.
Thank you,
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test extends JPanel implements ActionListener {
KColor[] kColors = {
new KColor(200,200,255,"Blue moon","Always a blue moon"),
new KColor(255,100,0,"Orange","Halloween color"),
new KColor(100,20,0,"Toast","I like mine burnt") };
public test() {
setPreferredSize(new Dimension(320,240));
JComboBox<KColor> box = new JComboBox<>(kColors);
box.addActionListener(this);
box.setEditable(true);
add(box);
}
public void actionPerformed(ActionEvent ae) {
JComboBox<KColor> box = (JComboBox<KColor>)ae.getSource();
if (box.getSelectedItem() instanceof String) {
JOptionPane.showMessageDialog(this,"Enter new KColor Data");
// add new KColor to JComboBox
} else {
KColor kColor = (KColor)box.getSelectedItem();
System.out.println(kColor.message);
setBackground(kColor);
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.add(new test(),BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
});
}
class KColor extends Color {
public String name;
public String message;
public KColor(int red,int green,int blue,String name,String
message) {
super(red,green,blue);
this.name = name;
this.message = message;
}
public String toString() {
return name;
}
public String showDetail() {
return String.format("%s %d %d %d %s",name,getRed(),
getGreen(),getBlue(),message);
}
}
}
--
Knute Johnson