java图形界面下拉框_吴裕雄--天生自然JAVA图形界面编程学习笔记:下拉列表框JComboBox...

这篇博客介绍了如何在Java图形用户界面中使用JComboBox创建下拉列表框,并实现监听事件,包括项状态改变和动作触发时的响应,同时展示了如何设置默认值和边框,以及动态添加新选项的功能。
摘要由CSDN通过智能技术生成

import javax.swing.JFrame ;

import java.awt.Container ;

import java.awt.Font ;

import java.awt.event.WindowEvent ;

import java.awt.event.ActionListener ;

import java.awt.event.ItemListener ;

import java.awt.event.ItemEvent ;

import java.awt.event.ActionEvent ;

import java.awt.event.WindowAdapter ;

import java.awt.GridLayout ;

import javax.swing.JComboBox ;

import javax.swing.JLabel ;

import javax.swing.ComboBoxEditor ;

import javax.swing.BorderFactory ;

import java.util.Vector ;

class MyComboBox implements ItemListener,ActionListener{

private JFrame frame = new JFrame("Welcome TO MLDN") ;

private Container cont = frame.getContentPane() ;// 得到容器

private JComboBox jcb1 = null ;

private JLabel label = new JLabel("www.MLDNJAVA.cn") ;// 定义标签

private String fontSize[] = {"10","12","14","16","18","20","22","24","26","48","72"} ;

public MyComboBox(){

this.frame.setLayout(new GridLayout(2,2)) ;// 定义排版

this.jcb1 = new JComboBox(fontSize) ;// 实例化下拉列表框

this.jcb1.addItemListener(this) ;

this.jcb1.addActionListener(this) ;

this.jcb1.setEditable(true) ;// 表示可以编辑

// 为每一个下拉框增加一个边框

this.jcb1.setBorder(BorderFactory.createTitledBorder("你喜欢去那个国家旅游?")) ;

ComboBoxEditor editor = null ;

editor = this.jcb1.getEditor() ;/// 得到编辑对象

this.jcb1.configureEditor(editor,"12") ;// 指定默认值

this.jcb1.setMaximumRowCount(3) ;

this.changeFontSize(12) ;// 默认值

cont.add(this.jcb1) ;

cont.add(label) ;

this.frame.setSize(300,150) ;

this.frame.setVisible(true) ;

this.frame.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(1) ;

}

}) ;

}

public void itemStateChanged(ItemEvent e){

if(e.getStateChange()==ItemEvent.SELECTED){// 判断是否是选中

String itemSize = (String)e.getItem() ;

try{

this.changeFontSize(Integer.parseInt(itemSize)) ;

}catch(Exception e1){

}

}

}

public void actionPerformed(ActionEvent e){

String item = (String)this.jcb1.getSelectedItem() ;

int size = 12 ;// 设置一个默认大小

try{

size = Integer.parseInt(item) ;

}catch(Exception e1){}

this.changeFontSize(size) ;

// 判断给定的size是否存在,如果不存在则需要将新的内容设置上去

if(!this.isExists(item))

{

this.jcb1.addItem(jcb1.getSelectedItem()) ;

}

}

public boolean isExists(String item){

boolean flag = false ;

for(int i=0;i

if(item.equals(this.jcb1.getItemAt(i))){

flag = true ;

}

}

return flag ;

}

public void changeFontSize(int size){

System.out.println("*************" + size) ;

Font fnt = new Font("Serief",Font.BOLD,size) ;

this.label.setFont(fnt) ;

}

}

public class JComboBoxDemo03{

public static void main(String args[]){

new MyComboBox() ;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值