⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s18.htm

📁 提供给JAVA编程者图形界面卷
💻 HTM
📖 第 1 页 / 共 3 页
字号:
            import javax.swing.event.*;<br>            import javax.swing.border.*;            <p>public class Test extends JApplet {<br>              private JComboBox comboBox = <br>              new JComboBox(new Object[] {<br>              new Item(new Object[] {Color.gray, &quot;gray&quot;}),<br>              new Item(new Object[] {Color.orange, &quot;orange&quot;}),<br>              new Item(new Object[] {Color.red, &quot;red&quot;}),<br>              new Item(new Object[] {Color.blue, &quot;blue&quot;}),<br>              new Item(new Object[] {Color.yellow, &quot;yellow&quot;}),<br>              new Item(new Object[] {Color.magenta, &quot;magenta&quot;}),<br>              new Item(new Object[] {Color.black, &quot;black&quot;}),<br>              new Item(new Object[] {Color.green, &quot;green&quot;}),<br>              new Item(new Object[] {Color.lightGray, &quot;lightGray&quot;}),<br>              new Item(new Object[] {Color.white, &quot;white&quot;}),<br>              });</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> comboBox.setRenderer(new ColorRendererer());<br>              comboBox.setEditor(new ColorComboBoxEditor());<br>              comboBox.setEditable(true);</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(comboBox);<br>              }<br>              }<br>              class Item {<br>              private Color color;<br>              private String string;</p>            <p> public Item(Object[] array) {<br>              color = (Color)array[0];<br>              string = (String)array[1];<br>              }<br>              public Color getColor() { return color; }<br>              public String toString() { return string; }<br>              }<br>              class ColorComboBoxEditor extends AbstractComboBoxEditor {<br>              ColorIcon editorIcon = new ColorIcon();<br>              JLabel editorLabel = new JLabel(editorIcon);</p>            <p> Item item;</p>            <p> JColorChooser colorChooser = new JColorChooser();<br>              ActionListener okListener = new OKListener();<br>              Dialog dialog = JColorChooser.createDialog(<br>              null, // parentComponent<br>              &quot;Choose A Color&quot;,// title<br>              true, // modal<br>              colorChooser,<br>              okListener, <br>              null); // cancel listener</p>            <p> public ColorComboBoxEditor() {<br>              editorLabel.setBorder(BorderFactory.createEtchedBorder());</p>            <p> editorLabel.addMouseListener(new MouseAdapter() {<br>              public void mousePressed(MouseEvent e) {<br>              dialog.setVisible(true);<br>              }<br>              });<br>              }<br>              class OKListener implements ActionListener {<br>              public void actionPerformed(ActionEvent e) {<br>              item = <br>              new Item(new Object[] {<br>              colorChooser.getColor(), null});</p>            <p> fireActionPerformed(e);<br>              }<br>              }<br>              public Component getEditorComponent() {<br>              return editorLabel;<br>              }<br>              public Object getItem() {<br>              return item;<br>              }<br>              public void setItem(Object itemToSet) {<br>              item = (Item)itemToSet;</p>            <p> // cannot set the selected item in an editor's<br>              // setItem method, or an infinite loop results</p>            <p> editorIcon.setColor(item.getColor());<br>              editorLabel.setText(item.toString());<br>              }<br>              public void selectAll() {<br>              // from ComboBoxModel interface: nothing to select <br>              }<br>              }<br>              abstract class AbstractComboBoxEditor implements ComboBoxEditor               {<br>              EventListenerList listenerList = new EventListenerList();</p>            <p> public void addActionListener(ActionListener listener) {<br>              listenerList.add(ActionListener.class, listener);<br>              }<br>              public void removeActionListener(ActionListener listener) {<br>              listenerList.remove(ActionListener.class, listener);<br>              }<br>              protected void fireActionPerformed(ActionEvent e) {<br>              // Guaranteed to return a non-null array<br>              Object[] listeners = listenerList.getListenerList();<br>              <br>              // Process the listeners last to first, notifying<br>              // those that are interested in this event<br>              for (int i = listeners.length-2; i&gt;=0; i-=2) {<br>              if (listeners[i]==ActionListener.class) {<br>              ((ActionListener)<br>              listeners[i+1]).actionPerformed(e);<br>              } <br>              }<br>              } <br>              }<br>              class ColorRendererer extends JLabel implements ListCellRenderer               {<br>              private ColorIcon icon = new ColorIcon();</p>            <p> public ColorRendererer() {<br>              setOpaque(true);<br>              setIcon(icon);<br>              }<br>              public Component getListCellRendererComponent(<br>              JList list,<br>              Object value,<br>              int index,<br>              boolean isSelected,<br>              boolean cellHasFocus) {<br>              Item item = (Item)value;</p>            <p> icon.setColor(item.getColor());<br>              setText(item.toString());</p>            <p> if(isSelected) {<br>              setForeground(list.getSelectionForeground());<br>              setBackground(list.getSelectionBackground());<br>              }<br>              else {<br>              setForeground(list.getForeground());<br>              setBackground(list.getBackground());<br>              }<br>              return this;<br>              }<br>              }<br>              class ColorIcon implements Icon {<br>              private Color color;<br>              private int w, h;</p>            <p> public ColorIcon() {<br>              this(Color.gray, 50, 15);<br>              }<br>              public ColorIcon(Color color, int w, int h) {<br>              this.color = color;<br>              this.w = w;<br>              this.h = h;<br>              }<br>              public void paintIcon(Component c, Graphics g, int x, int y) {<br>              g.setColor(Color.black);<br>              g.drawRect(x, y, w-1, h-1);<br>              g.setColor(color);<br>              g.fillRect(x+1, y+1, w-2, h-2);<br>              }<br>              public Color getColor() {<br>              return color;<br>              }<br>              public void setColor(Color color) {<br>              this.color = color;<br>              }<br>              public int getIconWidth() {<br>              return w;<br>              }<br>              public int getIconHeight() {<br>              return h;<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 18.6.1 JComboBox属性</p>            <p>&nbsp;</p>            <p align="center">&nbsp;</p>            <p> 18.6.2 JComboBox事件</p>            <p>&nbsp;</p>            <p align="center"><b>例18-7 处理选取事件</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              private JComboBox comboBox = new JComboBox();</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> comboBox.addItem(&quot;Top&quot;);<br>              comboBox.addItem(&quot;Center&quot;);<br>              comboBox.addItem(&quot;Bottom&quot;);</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(comboBox);</p>            <p> comboBox.addItemListener(new ItemListener() { <br>              public void itemStateChanged(ItemEvent event) {<br>              int state = event.getStateChange();<br>              String item = (String)event.getItem(), s;</p>            <p> if(event.getStateChange() == ItemEvent.SELECTED)<br>              s = &quot; selected&quot;;<br>              else<br>              s = &quot; deselected&quot;;</p>            <p> JOptionPane.showMessageDialog(<br>              comboBox, // parent component<br>              item + s, // message<br>              &quot;JComboBox Selection&quot;, // title<br>              JOptionPane.INFORMATION_MESSAGE); // type<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例18-8 处理编辑事件</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              private JComboBox comboBox = new JComboBox();<br>              private ComboBoxEditor editor = comboBox.getEditor();</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> comboBox.setEditable(true);</p>            <p> comboBox.addItem(&quot;Top&quot;);<br>              comboBox.addItem(&quot;Center&quot;);<br>              comboBox.addItem(&quot;Bottom&quot;);</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(comboBox);</p>            <p> editor.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              String s = (String)editor.getItem();<br>              showStatus(&quot;Item Edited: &quot; + s);<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p> 18.6.3 JComboBox类总结</p>            <p>&nbsp;</p>            <p align="center"><b>例18-9 手工显示一个组件框的弹出式菜单</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              Container contentPane = getContentPane();<br>              JButton button = new JButton(&quot;show popup&quot;);<br>              final JComboBox combo = new JComboBox();</p>            <p> combo.addItem(&quot;first item&quot;);<br>              combo.addItem(&quot;second item&quot;);<br>              combo.addItem(&quot;third item&quot;);<br>              combo.addItem(&quot;fourth item&quot;);<br>              combo.addItem(&quot;fifth item&quot;);</p>            <p> button.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              combo.showPopup();<br>              }<br>              });<br>              contentPane.setLayout(new FlowLayout());<br>              contentPane.add(button);<br>              contentPane.add(combo);<br>              }<br>              }</p>            <hr size="1" noshade>            <p>18.6.4 AWT兼容</p>            <p>&nbsp;</p>            <p> 18.7 本章回顾</p>            <p>&nbsp;</p>            <p>[<a href="index.html" target="_self">目录</a>][<a href="s17.htm">上一页</a>][<a href="s19.htm">下一页</a>](飒龙收藏/2002.5.18)             </p>            </td>          </tr>        </tbody>      </table>    </td>  </tr></tbody></table><script language="javascript">bottomprint()</script></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -