博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java swing combobox_java的swing中,我想在JComboBox下拉框中添加文本内容,该如何去实现?...
阅读量:5869 次
发布时间:2019-06-19

本文共 3772 字,大约阅读时间需要 12 分钟。

4ecfaca080e8c41a7580dd27cc4e7bf8.png

青春有我

import java.awt.*;import java.awt.event.*;import javax.swing.*;/** CustomComboBoxDemo.java 你要有下列文件* images/Bird.gif* images/Cat.gif* images/Dog.gif* images/Rabbit.gif* images/Pig.gif*/public class CustomComboBoxDemo extends JPanel {ImageIcon[] images;String[] petStrings = {"Bird", "Cat", "Dog", "Rabbit", "Pig"};/** Despite its use of EmptyBorder, this panel makes a fine content* pane because the empty border just increases the panel's size* and is "painted" on top of the panel's normal background. In* other words, the JPanel fills its entire background if it's* opaque (which it is by default); adding a border doesn't change* that.*/public CustomComboBoxDemo() {super(new BorderLayout());//Load the pet images and create an array of indexes.images = new ImageIcon[petStrings.length];Integer[] intArray = new Integer[petStrings.length];for (int i = 0; i < petStrings.length; i++) {intArray[i] = new Integer(i);images[i] = createImageIcon("images/" + petStrings[i] + ".gif");if (images[i] != null) {images[i].setDescription(petStrings[i]);}}//Create the combo box.JComboBox petList = new JComboBox(intArray);ComboBoxRenderer renderer= new ComboBoxRenderer();renderer.setPreferredSize(new Dimension(200, 130));petList.setRenderer(renderer);petList.setMaximumRowCount(3);//Lay out the demo.add(petList, BorderLayout.PAGE_START);setBorder(BorderFactory.createEmptyBorder(20,20,20,20));}/** Returns an ImageIcon, or null if the path was invalid. */protected static ImageIcon createImageIcon(String path) {java.net.URL imgURL = CustomComboBoxDemo.class.getResource(path);if (imgURL != null) {return new ImageIcon(imgURL);} else {System.err.println("Couldn't find file: " + path);return null;}}/*** Create the GUI and show it. For thread safety,* this method should be invoked from the* event-dispatching thread.*/private static void createAndShowGUI() {//Create and set up the window.JFrame frame = new JFrame("CustomComboBoxDemo");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Create and set up the content pane.JComponent newContentPane = new CustomComboBoxDemo();newContentPane.setOpaque(true); //content panes must be opaqueframe.setContentPane(newContentPane);//Display the window.frame.pack();frame.setVisible(true);}public static void main(String[] args) {//Schedule a job for the event-dispatching thread://creating and showing this application's GUI.javax.swing.SwingUtilities.invokeLater(new Runnable() {public void run() {createAndShowGUI();}});}class ComboBoxRenderer extends JLabelimplements ListCellRenderer {private Font uhOhFont;public ComboBoxRenderer() {setOpaque(true);setHorizontalAlignment(CENTER);setVerticalAlignment(CENTER);}/** This method finds the image and text corresponding* to the selected value and returns the label, set up* to display the text and image.*/public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus) {//Get the selected index. (The index param isn't//always valid, so just use the value.)int selectedIndex = ((Integer)value).intValue();if (isSelected) {setBackground(list.getSelectionBackground());setForeground(list.getSelectionForeground());} else {setBackground(list.getBackground());setForeground(list.getForeground());}//Set the icon and text. If icon was null, say so.ImageIcon icon = images[selectedIndex];String pet = petStrings[selectedIndex];setIcon(icon);if (icon != null) {setText(pet);setFont(list.getFont());} else {setUhOhText(pet + " (no image available)",list.getFont());}return this;}//Set the font and text when no image was found.protected void setUhOhText(String uhOhText, Font normalFont) {if (uhOhFont == null) { //lazily create this fontuhOhFont = normalFont.deriveFont(Font.ITALIC);}setFont(uhOhFont);setText(uhOhText);}}}

转载地址:http://oytnx.baihongyu.com/

你可能感兴趣的文章
4岁童要嫁妆:等我结婚你可得给我买宝马
查看>>
定制属于自己的 linux 内核(Step 1)
查看>>
shell中变量赋值的几种方式 + - = ?
查看>>
Tab键的适当设置
查看>>
mysqlpump —mysql5.7官方表级别并发逻辑备份工具
查看>>
龙存存储部署管理维护文档
查看>>
社会化媒体营销 @ 微信营销用户群分析
查看>>
正确、错误信息输出到文件
查看>>
我的友情链接
查看>>
centos搭建LNMP+LAMP环境+(jdk+tomcat+mysql)
查看>>
Git管理Puppet打造统一配置管理
查看>>
LINUX命令大全
查看>>
Using VLANs with OVS and libvirt
查看>>
俞敏洪谈创业:成功者需要具备四种能力
查看>>
我的友情链接
查看>>
CentOS中安装subversion,并使用svn+ssh访问
查看>>
VB中UTF8转Unicode编码
查看>>
我的友情链接
查看>>
颜色混合opengl
查看>>
我的友情链接
查看>>