Swing-JComboBox用法-入门

JComboBox是Swing中的下拉菜单控件。它永远只能选中一个项目,然而比单选按钮节省空间。如果使用setEditable设置为true则内部选项的文本可以编辑,因此这种组件被称为组合框。注意,对选项的编辑只会影响当前项,而不会改变列表内容。可以使用addItem方法来添加选项列表,或者使用insertItemAt在任何位置插入选项;然而如果有大量选项需要添加,这种方法是非常笨重的,可以先构造一个DefaultComboBoxModel,使用addElement加载选项,最后在调用JComboBox的setModel方法。

常用方法如下:

示例代码:

JComboBoxDemo.java

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class JComboBoxDemo extends JFrame{

    /**
     * source code from 《java核心技术 卷1 基础知识》 P336
     */
    private static final long serialVersionUID = -8161981948004677531L;
    int DEFAULT_WIDTH = 600;
    int DEFAULT_HEIGHT = 400;
    private JLabel label;
    private JComboBox<String> faceCombo;
    private static final int FONTSIZE = 12;    

    public JComboBoxDemo(){
        setTitle("JComboBoxDemo");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

        //添加label
        label = new JLabel("The quick brown fox jumps over the lazy dog.");
        label.setFont(new Font("Serif",Font.PLAIN, FONTSIZE));
        add(label, BorderLayout.CENTER);

        //构造一个监听器,响应事件
        ActionListener actionListener = new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                if(e.getSource() instanceof JComboBox){
                    JComboBox<String> comboBox = (JComboBox)e.getSource();
                    String fontName = comboBox.getSelectedItem().toString();
                    label.setFont(new Font(fontName, Font.PLAIN, FONTSIZE));
                }
            }
        };    

        //添加一个JComboBox
        faceCombo = new JComboBox<String>();     faceCombo.setEditable(true);
        faceCombo.addActionListener(actionListener);
        faceCombo.setEnabled(true);
        faceCombo.addItem("Serif");
        faceCombo.addItem("SansSerif");
        faceCombo.addItem("Monospaced");
        faceCombo.addItem("Dialog");
        faceCombo.addItem("DialogInput");

        add(faceCombo, BorderLayout.SOUTH);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建窗体并指定标题
        JComboBoxDemo frame = new JComboBoxDemo();
        //关闭窗体后退出程序
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //自动适配所有控件大小
        //frame.pack();
        //设置窗体位置在屏幕中央
        frame.setLocationRelativeTo(null);
        //显示窗体
        frame.setVisible(true);
    }

}

运行效果:

时间: 2024-08-03 19:12:07

Swing-JComboBox用法-入门的相关文章

iOS多线程开发之GCD 用法入门

我们知道,在iOS中进行多线程编程,主要有三种方式:[NSThread].[NSOperation]和[GCD].其中又以[GCD]为苹果官方最为推荐.本文将利用一个简单的demo,简述GCD的用法入门,以及本人对GCD的一点肤浅理解和学习心得. 先把参考文章列出: http://www.cnblogs.com/kenshincui/p/3983982.html http://www.cnblogs.com/sunfrog/p/3305614.html http://mobile.51cto.c

Swing JComboBox的使用

1:JComboBox的使用:类层次结构图: 1 java.lang.Object 2 --java.awt.Component 3 --java.awt.Container 4 --javax.swing.JComponent 5 --javax.swing.JComboBox 构造函数: 1 JComboBox():建立一个新的JComboBox组件. 2 JComboBox(ComboBoxModel aModel):用ListModel建立一个新的JComboBox组件. 3 JComb

Swing-GridBagLayout用法-入门

注:本文内容转自:Java Layout总结-GridBagLayout.内容根据笔者理解稍有整理. GridBagLayout布局管理器:这就是最复杂的一个布局管理器了,网格包布局.在此布局中,组件大小不必相同.GridBagLayout gb=new GridBagLayout(); ContainerName.setLayout(gb); 以上代码是让容器获得一个GridBagLayout.要使用网格包布局,还必须有其一个辅助类,GridBagContraints.它包含GridBagLa

AWK用法入门详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Java-Properties用法-入门

对于应用程序的配置,通常的做法是将其保存在独立的配置文件中,程序启动时加载,修改时保存.Java中Properties类就提供了这样一种机制,配置项以Key-Value的数据结构存储在文本文件中,扩展名为".properties".Properties的用法很简单,使用load(FileInputStream in)进行读取:使用getProperty(String key)来读取键值:使用put(String key, String value)添加键值对,使用store(FileO

linux中的awk用法入门详解(一)

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Swing-setBorder()用法-入门

注:本文内容转自:Swing编程边框(Border)的用法总结.内容根据笔者理解稍有整理. 函数说明: public void setBorder(Border border) 设置此组件的边框.Border 对象负责定义组件的 insets(直接对组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰.要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets).在单个组件中可使用复合边框来嵌套多个边框. 虽然从技术上

MongoDB 用法入门(windows)①

概述 大家对数据库肯定不陌生,肯定也有很多人用过MySQL,但是在用MySQL的时候各种建表,写表之间的关联让人非常头疼. MongoDB也是一种数据库,但是它不是用表,而是用集合来装数据的,我对这种数据储存方式很感兴趣.所以我根据MongoDB3.6的官方说明文档整理了MongoDB入门级用法,供自己开发时参考,相信对其他人也有用. 这是慕课网上MongoDB的课程:mongoDB入门篇 这是MongoDB官方说明文档:The MongoDB Manual 什么是MongoDB Mongodb

LESS 用法入门

本文旨在加深对 LESS 的理解和记忆,供自己开发时参考.相信对没有接触过 LESS 的程序员还是有用的,大佬绕路. 一. 安装和使用 LESS 1.1 安装 使用命令行安装 LESS npm install -g less 2.1 使用 less 有多种的使用方法,在这里我向大家介绍最常用的俩种方法. 第一种是直接在浏览器中使用: 去下载一个你要的 less.js  脚本: 创建一个文件来放置你的样式,比如说style.less 添加下面的代码到你的 HTML 的 <head> 中. <