二级java:JComboBox的下拉框向上
来源:优易学  2011-9-23 18:42:44   【优易学:中国教育考试门户网】   资料下载   IT书店
  最近学习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;
  }
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训