有才華的人,別忘記給滋潤你的那塊土壤施肥

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            28 隨筆 :: 5 文章 :: 147 評論 :: 0 Trackbacks
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(15)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          記得常去逛逛

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          csdn太慢啦,搬家至此。。。。
          最近學習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(
          5015020020);
              
          this.add(jcb, null);
              setSize(
          300300);
              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 - 517 * 5);
                    scroller.setMaximumSize(popupSize);
                    scroller.setPreferredSize(popupSize);
                    scroller.setMinimumSize(popupSize);
                    show(comboBox, newsBarTitleWidth, 
          -17 * 5);//getPopupHeightForRowCount(10));
              }

            }
          ;
            popup.getAccessibleContext().setAccessibleParent(comboBox);
            
          return popup;
           }

            }

          }


           

          顯示效果為:

          不過看圖的效果jcb的輸入框沒有線條顯示,看來得再改改,學習中。。。。。。。

          posted on 2008-03-05 11:21 kissjava 閱讀(1164) 評論(1)  編輯  收藏 所屬分類: swing

          評論

          # re: JComboBox的下拉框向上 2009-01-07 18:59 xx
          BasicComboBoxUI 換成 MetalComboBoxUI 就行了~~~  回復  更多評論
            

          主站蜘蛛池模板: 五家渠市| 社旗县| 贞丰县| 夏邑县| 建宁县| 康保县| 育儿| 清新县| 江西省| 托克逊县| 蚌埠市| 遵义市| 宝鸡市| 尼玛县| 吴江市| 沁源县| 芮城县| 长岛县| 昔阳县| 石狮市| 开原市| 平遥县| 类乌齐县| 克什克腾旗| 明溪县| 台南市| 专栏| 灌阳县| 七台河市| 林甸县| 铜梁县| 仲巴县| 化德县| 年辖:市辖区| 通榆县| 常德市| 普格县| 新营市| 湘潭市| 荔浦县| 渝北区|