当前位置: 首页 > article >正文

《Java核心技术I》Swing的组合框

组合框

JComboBox类提供了组合框组件,是一个泛型类,JComboBox。

setEditable方法可以让组合框可编辑。

getSelectedItem方法获取当前的选项。

如果组合框不是可编辑的,最好调用getItemAt(combo.getSelectedIndex)。

addItem方法在末尾增加选项,不止构造器,其他任何地方都可以调用这个方法。

insertItemAt在列表任何位置都可增加。

removeItem("Monospaced")删除选项。

removeItemAt(0)删除第一项。

removeAllItems立即删除所有选项。

选择组合框,就产生一个动作事件,将获取当前选择的选项,转换成适当类型,通常是String.

faceCombo.getItemAt(faceCombo.getSelectedIndex())

组合框案例
package swing;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;

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

public class ComboBoxTest {

    public static void main(String[] args) {
        
        JFrame frame = new JFrame("组合框");
        JLabel label = new JLabel("brown foxs and lazy dog!",JLabel.CENTER);
        label.setFont(new Font("DialogInput", Font.PLAIN, 24));
        frame.add(label);
        
        JComboBox<String> faceCombo = new JComboBox<String>();
        faceCombo.addItem("Serif");
        faceCombo.addItem("SansSerif");
        faceCombo.addItem("Monospaced");
        faceCombo.addItem("Dialog");
        faceCombo.addItem("DialogInput");    
        
        faceCombo.addActionListener(e -> {
            System.out.println(faceCombo.getItemAt(faceCombo.getSelectedIndex()));
            label.setFont(new Font(faceCombo.getItemAt(faceCombo.getSelectedIndex()), Font.PLAIN, 24));
        });
        
        var comboPanel = new JPanel();
        comboPanel.add(faceCombo);
        frame.add(comboPanel,BorderLayout.SOUTH);
        
        frame.setSize(600, 400);
        //初始打开为屏幕中央
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Dimension screenSize = toolkit.getScreenSize();
        int screenWidth = (int) screenSize.getWidth();
        int screenHeight = (int) screenSize.getHeight();
        //计算窗口位置
        int x = (screenWidth - frame.getWidth())/2;
        int y = (screenHeight - frame.getHeight())/2;
        frame.setLocation(x, y);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

}


http://www.kler.cn/a/448419.html

相关文章:

  • petalinux-adi ---移植adi内核(一)
  • Vue Web开发(十)
  • 内网IP段介绍与汇总
  • Azure虚拟机非托管磁盘大小调整
  • 【线性代数】理解矩阵乘法的意义(点乘)
  • uniapp图片数据流���� JFIF ��C 转化base64
  • MongoDB 介绍及 Java 实现基本操作
  • kafka详解
  • Gin-vue-admin(1):环境配置和安装
  • 管理系统、微信小程序类源码文档-哔哩哔哩教程同步
  • CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究
  • 边缘智能网关助力打造建筑智慧消防物联网
  • 【CSS】line-height: 120% 和 line-height: 1.2有什么区别?
  • python面试篇-多并发详解(多线程,多进程,协成整理)---一篇搞定
  • 南京观海微电子----单片机的中断系统
  • 使用JavaScript获取商品详情接口:一个实用的指南
  • GO--堆(have TODO)
  • outlook smtp 发送邮件
  • Android-Glide缓存机制
  • Zookeeper 底层原理解析
  • 大小端存储的问题
  • mysql-主从同步与读写分离
  • 机器学习之归纳学习
  • 【Mybatis-Plus】使用步骤 条件构造器 分页模型
  • Flink 简介和简单的demo
  • Linux -- 线程控制相关的函数