Topic: JComboBox的一个问题 |
Print this page |
1.JComboBox的一个问题 | Copy to clipboard |
Posted by: jfml Posted on: 2003-05-08 22:11 做了一个颜色选择ComboBox,但是选中颜色后ComboBox背景无法改变 请大家帮忙看看哪里出了问题,谢谢 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ColorComboBoxTester extends JPanel { class ComboBoxRenderer extends DefaultListCellRenderer { public ComboBoxRenderer() { setOpaque(true); setHorizontalAlignment(CENTER); setVerticalAlignment(CENTER); } public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { setComponentOrientation(list.getComponentOrientation()); Color color = ((JLabel)value).getBackground(); setBackground(color); setText(((JLabel)value).getText()); return this; } } public static void main(String s[]) { JFrame frame = new JFrame("CustomComboBoxDemo"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.getContentPane().add(new ColorComboBoxTester(), BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } ImageIcon images[]; public ColorComboBoxTester() { JLabel l1 = new JLabel(); l1.setBackground(Color.red); l1.setText("RED"); JLabel l2 = new JLabel(); l2.setBackground(Color.black); l2.setText("BLACK"); JLabel l3 = new JLabel(); l3.setBackground(Color.blue); l3.setText("BLUE"); JLabel l4 = new JLabel(); l4.setBackground(Color.green); l4.setText("GREEN"); JLabel[] labels = new JLabel[] { l1, l2, l3, l4 }; // Create the combo box JComboBox petList = new JComboBox(labels); ComboBoxRenderer renderer = new ComboBoxRenderer(); renderer.setPreferredSize(new Dimension(100, 50)); petList.setMaximumRowCount(3); petList.setRenderer(renderer); JComboBox tList = new JComboBox(new String[]{"1", "2", "3", "4"}); // Layout the demo setLayout(new BorderLayout()); add(petList, BorderLayout.NORTH); add(tList, BorderLayout.SOUTH); setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); } } |
2.Re:JComboBox的一个问题 [Re: CrazyJavar] | Copy to clipboard |
Posted by: yakuu Posted on: 2003-05-09 09:24 add code below: petList.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e){ JLabel selLabel = (JLabel)e.getItem(); JComboBox comb = (JComboBox)e.getSource(); comb.setBackground(selLabel.getBackground()); } }); need your hard code. |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |