快速业务通道

JComboBox的下拉框向上 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

JComboBox的下拉框向上

时间:2011-01-16 BlogJava kissjava

最近学习SWING,改变JComboBox的的显示方式,这里是将JComboBox的下拉框向上显示,以下为详细代码:

package kissJava.JComboBox; import java.awt.Dimension; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.plaf.ComboBoxUI; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicArrowButton; import javax.swing.plaf.basic.BasicComboBoxUI; import javax.swing.plaf.basic.BasicComboPopup; import javax.swing.plaf.basic.ComboPopup; public class PopupComboSample extends JFrame...{    String labels[] = ...{ "Chardonnay", "Sauvignon", "Riesling", "Cabernet",            "Zinfandel", "Merlot", "Pinot Noir", "Sauvignon Blanc",            "Syrah", "Gewurztraminer" };    JComboBox jcb = null;   public PopupComboSample()...{    this.setTitle("下拉框向上");     this.setLayout(null);      jcb = new JComboBox(labels);      //setUI.......      jcb.setUI((ComboBoxUI) MyComboBoxUI.createUI(jcb));      jcb.setBounds(50, 150, 200, 20);      this.add(jcb, null);      setSize(300, 300);      setVisible(true);   }    public static void main(String args[]) ...{       new PopupComboSample();    }    static class MyComboBoxUI extends BasicComboBoxUI ...{     int newsBarTitleWidth = 0;      public static ComponentUI createUI(JComponent c) ...{        return new MyComboBoxUI();      }      //改变箭头的方向      protected JButton createArrowButton() ...{        JButton button = new BasicArrowButton(BasicArrowButton.NORTH);        return button;      }      //改变comboBox的弹出方向      protected ComboPopup createPopup() ...{       BasicComboPopup popup = new BasicComboPopup(comboBox)...{        public void show() ...{           //大小按需要更改            Dimension popupSize = new Dimension(200 - newsBarTitleWidth - 5, 17 * 5);            scroller.setMaximumSize(popupSize);            scroller.setPreferredSize(popupSize);            scroller.setMinimumSize(popupSize);            show(comboBox, newsBarTitleWidth, -17 * 5);//getPopupHeightForRowCount(10));      }    };    popup.getAccessibleContext().setAccessibleParent(comboBox);    return popup;   }    } }

显示效果为:

不过看图的效果jcb的输入框没有线条显示,看来得再改改,学习中。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号