精华内容
下载资源
问答
  • JCombobox使用方法

    千次阅读 2014-11-23 22:36:25
    //声明组件 Strings[] = { "座票", "卧铺" };  JComboBoxcb_ticketType = newJComboBox(s);...cb_ticketType.addItemListener(new myItemListener());...//实现方法    public class myItemListener i

    //声明组件

    Strings[] = { "座票", "卧铺" };

       JComboBoxcb_ticketType = newJComboBox(s);

    //设置监听

    cb_ticketType.addItemListener(new myItemListener());

     

     

    //实现方法

     

       public class myItemListener implements ItemListener {

          // JComboBox的监听事件时总是执行两次,原因如下:

          // ItemListener类中的方法itemStateChanged()事件的itemState有关,itemState在这里的状态有两个,Selected

          // deSelected(即选中和未被选中)

          // 所以,当改变下拉列表中被选中的项的时候,其实是触发了两次事件:

          // 第一次是上次被选中的项的 State Selected 变为 deSelected ,即取消选择

          // 第二次是本次被选中的项的 State deSelected 变为 Selected ,即新选中,所以,必然的

          // ItemStateChanged 事件中的代码要被执行两次了。

          // 加上最外面的if语句,就可以解决这个问题。

     

          public voiditemStateChanged(ItemEvent e) {

             // TODO Auto-generated method stub

             TableModeltm = Main.tab_showTicket.getModel();

             // Object value = tm.getValueAt(row, col);

             final int row = Main.tab_showTicket.getEditingRow();

             if (e.getStateChange() ==ItemEvent.SELECTED){

                if (e.getSource() == cb_ticketType) {

                    int index = cb_ticketType.getSelectedIndex();

     

                    if (index == 0) {

                       ta_ticketPrice.setText((String)tm.getValueAt(row, 5));

                    }else{

                       ta_ticketPrice.setText((String)tm.getValueAt(row, 6));

                    }

                }

             }

          }

       }

    展开全文
  • 重写 方法 jComboBox

    2016-03-25 11:12:59
    这是一个jComboBox1,我返回里面的JTextField,但要重写里面的方法要怎么做? jTextField1 = (JTextField) this.getEditor().getEditorComponent();
  • JCombobox

    千次阅读 2014-03-29 10:49:07
    JCombobox是Swing中比较常用的控件,它显示一个项列表,扩展的是ListModel接口的模型,它的显示绘制器通过实现ListCellBenderer接口来绘制列表单元,下面介绍 ①普通应用例子;②显示图片选项框例子;③修改下拉按钮的...

    JCombobox是Swing中比较常用的控件,它显示一个项列表,扩展的是ListModel接口的模型,它的显示绘制器通过实现ListCellBenderer接口来绘制列表单元,下面介绍 ①普通应用例子;②显示图片选项框例子;③修改下拉按钮的例子;④下拉框可选与否的例子.

    对于普通情况下使用JCombobox,没有什么注意事项,只需要把JCombobox new出来,设置它的Model的值就可以了.

    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...
    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...

            String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig" };

            //Create the combo box, select the item at index 4.

            JComboBox petList = new JComboBox(petStrings);

            petList.setSelectedIndex(4);

            petList.addActionListener(this);

    也可以通过petList.setEditable(true);设置是否可以编辑.对于Action的处理和普通的一样.

    JCombobox默认下拉显示和显示项是文本,为了显示其它内容比如图片或者更复杂的东西,则需要设置新的Renderer,JCombobox的Renderer需要实现ListCellRenderer接口.

    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...
    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...

    具体的实现其实和普通的一样,先把JCombobox new出来,在使用setRenderer方法设置自己定义的Renderer就可以了.

        JComboBox petList = new JComboBox(intArray);

        ComboBoxRenderer renderer = new ComboBoxRenderer();

        renderer.setPreferredSize(new Dimension(200, 130));

        petList.setRenderer(renderer);

    当然这个Renderer是实现了ListCellRenderer接口的.

    privateclass ComboBoxRenderer extends JLabel implements ListCellRenderer {

    这样要是实现接口的方法:

        * This method finds the image and text corresponding to the selected

        * value and returns the label, set up to display the text and image.

        */

    @Override

    public Component getListCellRendererComponent(JList list, Object value, int index, booleanisSelected, boolean cellHasFocus) {

    然后然后this就是继承的JLabel了,对它可以设置属性了:

        setIcon(icon);

        setText(pet);

    当然你也可以设置更复杂的控件,比如继承JButton可以设置成按钮的样式.

    Swing的MVC模式非常的好,当你需要更改控件的显示的时候只需要继承控件的基本UI,重写你需要重写的部位就可以了,这儿想下拉框的按钮不显示向下的箭头,只需要继承BasicComboBoxUI,重写createArrowButton方法就可以了.

    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...

        privatestaticclass MyComboBoxUI extends BasicComboBoxUI {

           publicstatic ComponentUI createUI(JComponent c) {

               returnnew MyComboBoxUI();

            }

           protected JButton createArrowButton() {

               JButton button = new BasicArrowButton(BasicArrowButton.EAST);

           }

        }

    当你需要修改JCombobox的UI的时候,只需要调用setUI方法就可以了.

        JComboBox comboBox = new JComboBox(labels);

        comboBox.setUI((ComboBoxUI) MyComboBoxUI.createUI(comboBox));

    对于修改JCombobox的显示可以从两个方向考虑,一个是修改MetalComboBoxUI,一个是继承ListCellRenderer.在通过设置UI和Renderer使界面修改.

    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...
    JCombobox组合框效果实现 - hsxqwfxc - 十年、二十年,或许更久 ...

    先设置JCombobox下拉框是否有线,为了使以后扩展容易,设置为接口:

    /**

    *theinterfacethattheJComboBoxcanhavelineenable.

    */

    publicinterface LineEnable {

         *            isLineenable

        publicvoid setLineEnabled(boolean isLineEnable);

        publicboolean isLineEnabled();

    }

    同样的对于JCombobox下拉框是否可以选择也设置为接口:

    /**

    *theinterfacethattheJComboBoxcanselectenable.

    */

    publicinterface SelectEnable {

         *            isSelectenable

        publicvoid setSelectEnabled(boolean isSelectEnable);

        publicboolean isSelectEnabled();

    }

    对于JCombobox的没一个Item,都可以通过实现这些接口获得相应的显示:

    /**

    *theitemsthatyouwanttoshowinJComboBox.

    */

    publicclassimplements SelectEnable, LineEnable {

    对于特殊的JCombobox设置Item时,设置MyComboBoxItem就可以使Item具有选择可否和是否是线的样式.

        private Object comboxItem = null;

        booleanisSelectEnabled = true;

        booleanisLineEnabled = false;

    可以通过设置它们得到JCombobox样式,这个类就是一个简单的Java Bean.

    然后就是设置JCombobox的选项的显示,实现ListCellRenderer接口,通过对组件的重写设置描绘它的新属性:

    /**

    */

    publicclass MyComboBoxRenderer extends JLabel implements ListCellRenderer, ActionListener {

    重写它的方法:

         *Returnacomponentthathasbeenconfiguredtodisplaythespecified

        public Component getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus) {

    先设置它的显示

    String item = (value == null) ? "" : value.toString();

    再设置是否是线:

           if (((LineEnable) value).isLineEnabled()) {

               returnnew JSeparator(JSeparator.HORIZONTAL);

           }

            if (-1 < index) {

                  if (((SelectEnable) value).isSelectEnabled()) {

                      list.setToolTipText("You select is : " + item);

                      list.setToolTipText("You cn't select : " + item

                             + ", It select unEnable.");

                  }

           }

    if (!((SelectEnable) value).isSelectEnabled()) {

               setBackground(list.getBackground());     setForeground(UIManager.getColor("Label.disabledForeground"));

           }

         *Thelistenerinterfaceforreceivingactionevents.

        publicvoid actionPerformed(ActionEvent e) {

           Object tempItem = combox.getSelectedItem();

           if (((LineEnable) tempItem).isLineEnabled()) {

               combox.setSelectedItem(currentItem);

               currentItem = tempItem;

           }

           if (!((SelectEnable) tempItem).isSelectEnabled()) {

               combox.setSelectedItem(currentItem);

               currentItem = tempItem;

           }

        }

    /**

    */

    publicclass MyComboBoxUI extends MetalComboBoxUI {

    这里的UI设置主要是设置选择不可选的项时清除,并对JCombobox的下拉的菜单设置

    /**

    */

    @Override

        Dimension popupSize = ((MyComboBox) comboBox).getPopupSize();

       popupSize.setSize(popupSize.width, getPopupHeightForRowCount(comboBox.getMaximumRowCount()));

                  Rectangle popupBounds = computePopupBounds(0, comboBox

                  .getBounds().height, popupSize.width, popupSize.height);

        scroller.setMaximumSize(popupBounds.getSize());

        scroller.setPreferredSize(popupBounds.getSize());

        scroller.setMinimumSize(popupBounds.getSize());

        // Invalidates the container.

        intcomboBox.getSelectedIndex();

        if

            list.clearSelection();

           list.setSelectedIndex(selectedIndex);

        }

        list.ensureIndexIsVisible(list.getSelectedIndex());

        setLightWeightPopupEnabled(comboBox.isLightWeightPopupEnabled());

        show(comboBox, popupBounds.x, popupBounds.y);

    }

    然后在UI的new BasicComboPopup(comboBox) {

    popup.getAccessibleContext().setAccessibleParent(comboBox);

    最后的类就是自己的MyComboBox了,这个类其实也可以不要,只需要你在新建自己特殊的JCombobox时,不要忘记设置UI和传入的Item是MyComboBoxItem就可以了,这里为了方便自己实现了,以后使用时只需要New MyComboBox就可以了.

    /**

    *theJComboBoxthatithavesomeownmethod.

    */

    publicclassextends JComboBox {

    另外为了显示宽度合适,它提供了设置popupWidth的方法:

        public Dimension getPopupSize() {

           Dimension size = getSize();

           if (popupWidth < 1) {

               popupWidth = size.width;

           }

           returnnew Dimension(popupWidth, size.height);

        }

    这样一个属于自己的JComboBox就设置完成了,使用方法如下:

    MyComboBoxItem [] items = { new MyComboBoxItem("Astart"),

                      new MyComboBoxItem("BGold", truetrue),

                      new MyComboBoxItem("ilove", false),

                      new MyComboBoxItem("fire your game", true),

                      new MyComboBoxItem("", truetrue),

                      new MyComboBoxItem("NIHA", false),

                      new MyComboBoxItem("生活"),

                      new MyComboBoxItem("", falsetrue) };

    JComboBox jComboBox = new MyComboBox(items);

    jComboBox.setRenderer(new MyComboBoxRenderer(jComboBox));

     

    展开全文
  • JComboBox

    2010-07-11 16:33:42
    JComboBox(ComboModel):可以繼承AbstractListModel和實現ComboBoxModel;重寫getSize() getElementAT() getSelectedItem() 和setSelectedItem()。 當然也可以直接繼承DefaultComboBoxModel,這樣就不需要重寫以上...
    JComboBox(ComboModel):可以繼承AbstractListModel和實現ComboBoxModel;重寫getSize() getElementAT() getSelectedItem() 和setSelectedItem()。
    
    當然也可以直接繼承DefaultComboBoxModel,這樣就不需要重寫以上的四個方法了。
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;

    public class JComboBoxDemo2 {

    String[] s = {"美國","日本","中國","英國","法國","德國","意大利"};

    public JComboBoxDemo2(){
    JFrame jf = new JFrame("JComboBox");
    Container contentPane = jf.getContentPane();

    ComboBoxModel mode = new AModel();
    JComboBox combo = new JComboBox(mode);
    combo.setBorder(BorderFactory.createTitledBorder("你喜歡哪個國家?"));

    contentPane.add(combo);
    jf.pack();
    jf.setVisible(true);
    jf.addWindowListener(new WindowAdapter(){
    @Override
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    }
    public static void main(String...args){
    new JComboBoxDemo2();
    }

    class AModel extends DefaultComboBoxModel{
    AModel(){
    for(int i=0;i<s.length;i++){
    addElement(s[i]);
    }
    }
    }
    }


    參考:深入淺出Java Swing程序設計
    展开全文
  • JcomboBox

    2011-09-22 01:23:52
    对于JcomboBox,需要通过联数据库得到他的下拉框选项值的问题; 第一步,我们必须明白那个框框的值是压得bean对象,因为这个框框中对象还联系到很多别的值,并且需要在别的地方要用到,比如说,jtable中要显示与...

    对于JcomboBox,需要通过联数据库得到他的下拉框选项值的问题;

    第一步,我们必须明白那个框框的值是压得bean对象,因为这个框框中对象还联系到很多别的值,并且需要在别的地方要用到,比如说,jtable中要显示与框框的值的相关数据,所以说……

    我们首先的通过相关表建立bean类,并且要重写toString()方法,让toString()返回相关Jcombobox需要的值;

    然后设计dao方法,让其返回一个Vector或list对象,其里面添加的是bean数据;

    最后建立一个方法来为JcomboBox添加数据,然后调用该方法,就可以完成,

    代码:

    /**

    *Bean:

    */

    public class GoodsBeans {
     int     c_id ;
     public int getC_id() {
      return c_id;
     }
     public void setC_id(int c_id) {
      this.c_id = c_id;
     }
     public String getC_name() {
      return c_name;
     }
     public void setC_name(String c_name) {
      this.c_name = c_name;
     }
     public String getC_contPe() {
      return c_contPe;
     }
     public void setC_contPe(String c_contPe) {
      this.c_contPe = c_contPe;
     }
     public String getC_phone() {
      return c_phone;
     }
     public void setC_phone(String c_phone) {
      this.c_phone = c_phone;
     }
     public String getC_type() {
      return c_type;
     }
     public void setC_type(String c_type) {
      this.c_type = c_type;
     }
     public String getC_addre() {
      return c_addre;
     }
     public void setC_addre(String c_addre) {
      this.c_addre = c_addre;
     }
     public float getC_moret() {
      return c_moret;
     }
     public void setC_moret(float c_moret) {
      this.c_moret = c_moret;
     }
     public String getC_rema() {
      return c_rema;
     }
     public void setC_rema(String c_rema) {
      this.c_rema = c_rema;
     }
     String  c_name ;
     String  c_contPe;
     String  c_phone ;
     String  c_type ;
     String  c_addre ;
     float   c_moret ;
     String  c_rema ;
     public String toString() {
      return c_name;
     }
    }

    /**

    *dao方法

    */

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Vector;

    import com.beans.GoodsBeans;
    import com.unit.DBUnit;

    public class CustomerDao {
     public Vector getCustomer() {
      DBUnit dao = new DBUnit();
      Vector date = new Vector();
      Connection conn = dao.getConn();
      PreparedStatement st = null;
      ResultSet rs = null;
      try {
       String sql = "select * from customer";
       st = conn.prepareStatement(sql);
       
       rs = st.executeQuery(sql);
       
       while (rs.next()) {
        GoodsBeans ab = new GoodsBeans();
        ab.setC_id(rs.getInt("c_id"));
        ab.setC_name(rs.getString("c_name"));
        ab.setC_contPe(rs.getString("c_contPe"));
        ab.setC_phone(rs.getString("c_phone"));
        ab.setC_type(rs.getString("c_type"));
        ab.setC_addre(rs.getString("c_addre"));
        ab.setC_moret(rs.getFloat("c_moret"));
        ab.setC_rema(rs.getString("c_rema"));
        date.add(ab);
       }
      } catch (SQLException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } finally {
       dao.connfree(rs, st, conn);
      }

      
      return date;
     }
    }

    /**

    *添加Item方法

    *

     public void comboxkefu_action(){
       
       Vector name = new Vector();
       CustomerDao dao = new CustomerDao();
       name = dao.getCustomer();
       for (Object o : name) { 
        comboxkefu.addItem(o);
       }
     }

     

    /**

    *diao yong

    *

    展开全文
  • 今天用到JComboBox,需要将所有项删除,然后重新加,结果点出一个removeAll来,直接就用了。一运行才发现,连右边的下拉箭头也给remove掉了。惊出一身汗,赶紧查文档,唉,就在下面有一个removeAllItems方法。看来...
  • JComboBox中加入图片的方法--源代码 效果请看下面链接 http://colorfuldiary.blog.163.com/blog/static/901160392009113145438300/
  • JComboBox comBox = new JComBox(); comBox.addItem("123"); .... 编译的时候虚拟机发出如下提示 注: Window.java使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。...
  • 对于jComboBox的.addItem(Object)方法,当通过如下方法添加item时, ResultSet rs = bookTypeDao.getBookTypeList(con, new BookType());while (rs.next()) { bookType = new BookType();bookType.setId(rs....
  • java中JComBoBox的使用

    千次阅读 2016-09-21 20:31:16
    下拉列表(JComboBox)使用方法及示例详解 * JComboBox() 建立一个JComboBox组件. * JComboBox(ComboBoxModel model) 根据model建立一个JComboBox组件. * JComboBox(Objext[] items) 利用数组对象建立一个JComboBox...
  • JComboBox设置默认值为空JComboBox设置默认值为空1....这里我们可以使用JComboBox的setSelectedIndex(int anIndex)方法,将 anIndex 处值设置为-1,则JComboBox不会选中任何一项 2.代码示例 public class
  • JComboBox(选择框)组件 JComboBox组件实现一个选择框,用户可以从下拉列表中选择相应的值,该选择框还...JComboBox类提供的常用构造方法如表1所示。 表1 JComboBox类的常用构造方法 在创建选择框时,可以通
  • JTextField、JTextArea添加时间监听器以获取内容的方法以及JComboBox获取选中项内容的方法1、最近开始学java的GUI编程,用NetBeans的窗体设计功能直接拖控件非常方便,通过NetBeans很轻松就可视化的添加了相应组件的...
  • MyEclipse8.5中的可视化界面JTable和JComboBox应用,及常用方法。 一、可视化界面的创建 创建项目(Java):因为比较简单就不详细介绍。 创建一个可视化界面。      (1)右键src下的一个包...
  • JComboBox 的使用

    2017-06-27 10:02:13
    1.  String[] str = {"编号","姓名","年龄","地址", "电话"}; JComboBox comboBox = new JComboBox(str);
  • JComboBox事件监听

    千次阅读 2011-07-25 23:51:28
    JComboBox是下拉列表框JComboBox类可以使用ActionLIstener和ItemListener做监听但是建议使用ItemListener,因为在去除事件监听时你会发现JComboBox有一个removeItemListener(ItemListener)方法
  • JComboBox是Swing中的下拉菜单控件。它永远只能选中一个项目,然而比单选按钮节省空间...JComboBox 常用构造方法: JComboBox() JComboBox(ComboBoxModel model) JComboBox(Object[] items) JComboBox(V...
  • JComboBox的使用

    2013-05-04 13:44:39
    类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.JComboBox ...JComboBox():建立一个新的JComboBox组件。 JComboBox(ComboBox
  • JComboBox实现时间控件

    2017-01-12 20:33:00
    1.认识JComboBox控件 最近学习使用了JComboBox组件; 在学习使用了JList以及Jtree组件之后,对于使用JComboBox还是很轻松的。 JcomboBox的其实也是由一个Model模型,一个Render...首先,一个JComboBox的构造方法...
  • 3 下拉列表 JComboBox

    2021-01-08 19:17:02
    下拉列表 JComboBox 一、基本用法 创建 JComboBox JComboBox<String> colorList = new JComboBox<>(); 添加数据项 colorList.addItem("红色"); colorList.addItem("蓝色"); colorList.addItem(...
  • JCombobox过滤文本

    2018-04-30 23:35:45
    public class JFilterComboBox extends JComboBox { /** * 显示用模型 */ protected static DefaultComboBoxModel showModel = new DefaultComboBoxModel(); /** * 正在选择 */ private boolean ...
  • Java Swing JComboBox 数据刷新

    千次阅读 2019-05-12 15:55:51
    )方法可以更新该插件的数据。 以下为出错和解决流程: intro Java GUI编程中,按照历史进度:AWT -> Swing -> SWT。 在Swing编程中,JComboBox为下拉列表插件。 use JComboBox有两种方式传入数据。 - Vector&...
  • 下拉列表(JComboBox)使用

    千次阅读 2013-06-16 17:29:40
    下拉列表(JComboBox)使用方法及示例详解 * JComboBox() 建立一个JComboBox组件. * JComboBox(ComboBoxModel model) 根据model建立一个JComboBox组件. * JComboBox(Objext[] items) 利用数组对象建立一个JComboBox...
  • JComboBox c1=new JComboBox(); c1.addItem("suit one"); c1.addItem("suit two"); ``` --------- 附addItem JDK13.0.2: ------- > **addItem** *public void addItem​(E item)* Adds an item ...
  • JComboBox向上弹出

    2019-09-12 20:38:18
    主要就是重载JComboBox里的firePopupMenuWillBecomeVisible方法,使其改变它的弹出行为 .package com.JComB; import javax.swing.*; import javax.swing.plaf.basic.*; public ...
  • 第一个构造方法 JComboBox(ComboBoxModel aModel)参数是这个模型 自己写一个类继承AbstractListModel类和ComboBoxModel接口,在这个类中实现要求的方法,如getSelectedItem()等 第二个构造方法提供一个数组...
  • JComboBox基本用法

    千次阅读 2011-09-15 15:39:03
    JComboBox是swing种的下拉菜单控件。最常使用的函数应该是addItem()方法,可以为该控件添加一个个下拉选项。 然后要处理选中某个选项的事件,可以添加ItemListener监听器。 comboBox1.addItemListener(new java...
  • Java的JComboBox详解

    万次阅读 多人点赞 2019-01-07 09:28:47
    将按钮或可编辑字段与下拉列表组合的组件。用户可以从下拉列表中选择值,下拉列表在用户请求时显示。如果使组合框处于可编辑状态,则组合框将包括用户可在...  此类实现 JComboBox 类的可访问性支持。 static...
  • 下拉列表由 JComboBox 类实现,常用构造方法如下。 JComboBox():创建一个空的 JComboBox 对象。 JComboBox(ComboBoxModel aModel):创建一个 JComboBox,其选项取自现有的 ComboBoxModel。 JCom

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,203
精华内容 1,681
关键字:

jcombobox方法