解决下拉列表的连带事件---1

Java Swing 组合框示例
本文介绍了一个使用 Java Swing 实现的简单示例,该示例展示了如何创建并初始化三个组合框,并通过监听器实现对当前日期的自动选择。此外,还介绍了如何根据用户的操作来改变组合框的选择。

package jcomboxchange;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.awt.event.ItemListener;
import java.util.Calendar;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class JComboxChangeFrame extends JFrame implements Runnable {
    JPanel contentPane;
    Object[] defObjOne = {"2011","2010","2009","2008", "2007", "2006", "2005", "2004", "2003",
                         "2002", "2001", "2000"};
    Object[] defObjThere = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
                           "11", "12", "13", "14", "15", "16", "17", "18", "19",
                           "20",
                           "21", "22", "23", "24", "25", "26", "27", "28"};
    Object[] defObjTwo = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
                         "11", "12"};
    DefaultComboBoxModel defaultComOne = new DefaultComboBoxModel(defObjOne);

    DefaultComboBoxModel defaultComTwo = new DefaultComboBoxModel(defObjTwo);

    DefaultComboBoxModel defaultComThere = new DefaultComboBoxModel(defObjThere);

    JComboBox jComboBox1 = new JComboBox();
    JComboBox jComboBox2 = new JComboBox();
    JComboBox jComboBox3 = new JComboBox();
    public JComboxChangeFrame() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(548, 374));
        setTitle("下拉列表操作");
        jComboBox1.setBounds(new Rectangle(35, 69, 136, 33));
        jComboBox1.addActionListener(new
                                     JComboxChangeFrame_jComboBox1_actionAdapter(this));
        jComboBox2.setBounds(new Rectangle(34, 123, 137, 37));
        jComboBox2.addActionListener(new
                                     JComboxChangeFrame_jComboBox2_actionAdapter(this));
        jComboBox3.setBounds(new Rectangle(34, 182, 136, 40));
        jComboBox3.addActionListener(new
                                     JComboxChangeFrame_jComboBox3_actionAdapter(this));
        jComboBox1.setModel(defaultComOne);
        jComboBox2.setModel(defaultComTwo);
        jComboBox3.setModel(defaultComThere);
        contentPane.add(jComboBox1);
        contentPane.add(jComboBox2);
        contentPane.add(jComboBox3);
        Thread thr = new Thread(this);
        thr.start();
    }

    public void jComboBox1_actionPerformed(ActionEvent e) {
        jComboBox2.setSelectedItem("2");
    }

    public void jComboBox2_actionPerformed(ActionEvent e) {
        jComboBox3.setSelectedItem("26");
    }

    public void jComboBox3_actionPerformed(ActionEvent e) {
        System.out.println("jComboBox3_actionPerformed");
    }

    public void run() {

        Calendar date = Calendar.getInstance();
        String year = String.valueOf(date.get(Calendar.YEAR));
        String month = String.valueOf(date.get(Calendar.MONTH)+1);
        String day = String.valueOf(date.get(Calendar.DATE));
        //defaultComOne.get
        //defaultComOne.get
        int tempComOne = defaultComOne.getSize();
        int tempComTwo = defaultComTwo.getSize();
        int tempComThere = defaultComThere.getSize();
        //String selectCom = defaultComOne.getSelectedItem().toString();
        for (int i = 0; i < tempComOne; i++) {
            String selectCom = defaultComOne.getElementAt(i).toString();
            if (year.equals(selectCom.trim())) {
                jComboBox1.setSelectedItem(selectCom); // defaulComOne.getSize()
            }
        }
       
        for (int i = 0; i < tempComTwo; i++) {
            String selectCom = defaultComTwo.getElementAt(i).toString();
            if (month.equals(selectCom.trim())) {
                jComboBox2.setSelectedItem(selectCom); // defaulComOne.getSize()
            }
        }
       
        for (int i = 0; i < tempComThere; i++) {
            String selectCom = defaultComThere.getElementAt(i).toString();
            System.out.println(selectCom);
            if (day.equals(selectCom.trim())) {
                jComboBox3.setSelectedItem(selectCom); // defaulComOne.getSize()
            }
        }


    }
}


class JComboxChangeFrame_jComboBox1_actionAdapter implements ActionListener {
    private JComboxChangeFrame adaptee;
    JComboxChangeFrame_jComboBox1_actionAdapter(JComboxChangeFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jComboBox1_actionPerformed(e);
    }
}


class JComboxChangeFrame_jComboBox2_actionAdapter implements ActionListener {
    private JComboxChangeFrame adaptee;
    JComboxChangeFrame_jComboBox2_actionAdapter(JComboxChangeFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jComboBox2_actionPerformed(e);
    }
}


class JComboxChangeFrame_jComboBox3_actionAdapter implements ActionListener {
    private JComboxChangeFrame adaptee;
    JComboxChangeFrame_jComboBox3_actionAdapter(JComboxChangeFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jComboBox3_actionPerformed(e);
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值