震耳的安静 2016-07-07 09:03 采纳率: 95.5%
浏览 2080
已采纳

大神们,有没有java的ComboBox的实例呀,教教呀谢谢

想要一个搜索框和下拉框的组合框,大神们求支援,谢谢。。。。。。。。。。。。。。

  • 写回答

1条回答 默认 最新

  • gamedev˚ 2016-07-07 10:30
    关注
    
     import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.util.*;
    import java.text.SimpleDateFormat;
    /**
     * <p>Title: ComboBox下拉域演示</p>
     * <p>Description: 通过选择或这输入一种日期格式来格式化今天的日期</p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Filename: ComboBoxDemo.java</p>
     * @author 杜江
     * @version 1.0
     */
    
    public class ComboBoxDemo extends JPanel
                               implements ActionListener {
        static JFrame frame;
        JLabel result;
        String currentPattern;
    /**
     *<br>方法说明:构造器。初始化窗体构件
     *<br>输入参数:
     *<br>返回类型:
     */
        public ComboBoxDemo() {
            setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
            String[] patternExamples = {
                     "dd MMMMM yyyy",
                     "dd.MM.yy",
                     "MM/dd/yy",
                     "yyyy.MM.dd G 'at' hh:mm:ss z",
                     "EEE, MMM d, ''yy",
                     "h:mm a",
                     "H:mm:ss:SSS",
                     "K:mm a,z",
                     "yyyy.MMMMM.dd GGG hh:mm aaa"
                     };
    
            currentPattern = patternExamples[0];
    
            //设置一个规范的用户界面
            JLabel patternLabel1 = new JLabel("输入一个字符格式或者");
            JLabel patternLabel2 = new JLabel("从下拉列表中选择一种:");
    
            JComboBox patternList = new JComboBox(patternExamples);
            patternList.setEditable(true);//标注这里ComboBox可进行编辑
            patternList.addActionListener(this);
    
            //创建一个显示结果用户界面
            JLabel resultLabel = new JLabel("当前 日期/时间",
                                            JLabel.LEADING);//相当于LEFT
            result = new JLabel(" ");
            result.setForeground(Color.black);
            result.setBorder(BorderFactory.createCompoundBorder(
                 BorderFactory.createLineBorder(Color.black),
                 BorderFactory.createEmptyBorder(5,5,5,5)
            ));
    
            //布置构件
            JPanel patternPanel = new JPanel();
            patternPanel.setLayout(new BoxLayout(patternPanel,
                                   BoxLayout.PAGE_AXIS));
            patternPanel.add(patternLabel1);
            patternPanel.add(patternLabel2);
            patternList.setAlignmentX(Component.LEFT_ALIGNMENT);
            patternPanel.add(patternList);
    
            JPanel resultPanel = new JPanel(new GridLayout(0, 1));
            resultPanel.add(resultLabel);
            resultPanel.add(result);
    
            patternPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
            resultPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
    
            add(patternPanel);
            add(Box.createRigidArea(new Dimension(0, 10)));
            add(resultPanel);
    
            setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
    
            reformat();
        } 
    /**
     *<br>方法说明:事件处理
     *<br>输入参数:
     *<br>返回类型:
     */
        public void actionPerformed(ActionEvent e) {
            JComboBox cb = (JComboBox)e.getSource();
            String newSelection = (String)cb.getSelectedItem();
            currentPattern = newSelection;
            reformat();
        }
    /**
     *<br>方法说明:格式和显示今天的日期
     *<br>输入参数:
     *<br>返回类型:
     */
        public void reformat() {
            Date today = new Date();
            SimpleDateFormat formatter =
               new SimpleDateFormat(currentPattern);
            try {
                String dateString = formatter.format(today);
                result.setForeground(Color.black);
                result.setText(dateString);
            } catch (IllegalArgumentException iae) {
                result.setForeground(Color.red);
                result.setText("Error: " + iae.getMessage());
            }
        }
    /**
     *<br>方法说明:主方法
     *<br>输入参数:
     *<br>返回类型:
     */
        public static void main(String[] args) {
            JFrame.setDefaultLookAndFeelDecorated(true);
    
            //创建一个窗体
            frame = new JFrame("ComboBoxDemo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
            //创建一个面版容器
            JComponent newContentPane = new ComboBoxDemo();
            newContentPane.setOpaque(true);
            frame.setContentPane(newContentPane);
    
            //显示窗体
            frame.pack();
            frame.setVisible(true);
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况