itemlistener在java_java笔记 ItemListener

这篇博客介绍了如何在Java中使用ItemListener接口处理下拉菜单的事件,通过一个简单的计算器应用展示其工作原理。读者将学习到如何创建事件监听器,实现itemStateChanged方法,并结合ActionListener处理用户输入。
摘要由CSDN通过智能技术生成

java笔记 ItemListener

java笔记 ItemListener

//Inner class 事件处理例一

import java.awt.*;

import java.awt.event.*;

import java.net.PortUnreachableException;

import javax.swing.*;

class WindowOperator extends JFrame

{

JTextField inputNumber1, inputNumber2; // 输入框

JComboBox choiceFuhao; // 下拉菜单

JTextArea textshow; // 输出框

JButton button; // 确认按钮

OperatorListener operator; // 监视 下拉菜单的监视器

ComputerListener computer; // 监视 ActionEvent 的监视器,也就是按钮

public WindowOperator(String s)

{

init(s);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public void init(String s)

{

setLayout(new FlowLayout());

setTitle(s);

setBounds(100, 100, 390, 360);

// 实例化组件

inputNumber1 = new JTextField(5);

inputNumber2 = new JTextField(5);

choiceFuhao = new JComboBox();

button = new JButton("计算");

choiceFuhao.addItem("选择计算符号:");

String [] a = {"+", "-", "*", "/"};

for(int i = 0; i < a.length; i++)

choiceFuhao.addItem(a[i]);

textshow = new JTextArea(9, 30);

operator = new OperatorListener();

computer = new ComputerListener();

// 输入文本监视器

operator.setJComBox(choiceFuhao); // 设置下拉菜单内容

operator.setWorkTogether(computer); // 设置监听器

// 按钮和输出文本监视器

computer.setJTexFiled1(inputNumber1); // 设置数字文本内容

computer.setJTexFiled2(inputNumber2);

computer.setJTextArea(textshow);

// 注册符号的监听器

choiceFuhao.addItemListener(operator);

// 注册计算按钮的监视器

button.addActionListener(computer);

// 添加组件

add(inputNumber1);

add(choiceFuhao);

add(inputNumber2);

add(button);

add(textshow);

}

// 实例化OperatorListener,下拉菜单的监视器

public class OperatorListener implements ItemListener

{

JComboBox choice;

ComputerListener workTogether;

public void setJComBox(JComboBox box) { choice = box;} // 设置下拉菜单内容

public void setWorkTogether(ComputerListener computer) {workTogether = computer;} // 设置监听器

public void itemStateChanged(ItemEvent e)

{

String fuhao = choice.getSelectedItem().toString(); // getSelectedItem返回的是对象

workTogether.setFuhao(fuhao);

}

}

// 实例化ComputerListener,按钮的监视器

private class ComputerListener implements ActionListener

{

JTextField inpterNumber1, inpterNumber2;

JTextArea textshow;

String fuhao ;

public void setJTexFiled1(JTextField t) {inputNumber1 = t;}

public void setJTexFiled2(JTextField t) {inputNumber2 = t;}

public void setJTextArea(JTextArea t) {textshow = t; }

public void setFuhao(String s) {fuhao = s;}

public void actionPerformed(ActionEvent e)

{

//将文本中的字符串转为double

double num1 = Double.valueOf(inputNumber1.getText());

double num2 = Double.valueOf(inputNumber2.getText());

double sum = 0;

// 计算

if (fuhao.equals("+")) {sum = num1 + num2;}

else if(fuhao.equals("-")) {sum = num1 - num2;}

else if(fuhao.equals("*")) {sum = num1 * num2;}

else if(fuhao.equals("/")) {sum = num1 / num2;}

String res = String.format("%.3f", sum);

// 将结果转为字符串输出

textshow.append(num1 + " " + fuhao + " " + num2 + " = " + res + "\n");

}

}

}

//主类

public class test

{

public static void main(String args[])

{

WindowOperator win = new WindowOperator("简单计算器");

}

}

实现ItemListener接口,覆盖函数itemStateChanged,传入参ItemEvent

38a23383c96eb6224ea209c434c3c12e.png

java笔记 ItemListener相关教程

【Java】I/O(输入/输出)

【Java】I/O(输入/输出) InputStream类是字节输入流的抽象类,是所有字节输入流的父类。 Reader类是字符输入流的抽象类,所有字符输入流实现都是它的子类。 OutputStream类是字节输出流的抽象类。 Writer类是字符输出流抽象类,所有字符输出类的实现都是它

Java 中 YYYY-MM-dd 在跨年时的致命问题

Java 中 YYYY-MM-dd 在跨年时的致命问题 转载自:https://www.jianshu.com/p/7a01ea86b019 在跨年期间,如果在日期格式化的时候使用 YYYY 来格式化年份,则可能会出现下图所示的bug: 解决方案 YYYY 在官方文档中的解释是 week-based-year, 表示当天所在的周

python金融量化分析 | 闲杂笔记

python金融量化分析 | 闲杂笔记 最近事情好像有点多,处理得心不在焉。之前国庆计划把张五常老师的经济解释卷二,但也是只把第三章生产的成本看了一下,哈哈~ 这是一篇python金融量化分析的闲杂且入门的笔记,感觉学习价值较低,我只是记一下我码的代码,怎么

Java09-BigDecimal/BigInteger和IO读取

Java09-BigDecimal/BigInteger和IO读取 1 BigDecimal/BigInteger BigDecimal:常用来解决精确的浮点数运算。 BigInteger:常用来解决超大的整数运算。 BigDecimal.valueOf(2); add(BigDecimal bd): 做加法运算 substract(BigDecimal bd) : 做减法运算 multi

力扣刷题Python笔记:最长有效括号

力扣刷题Python笔记:最长有效括号 题目 给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。 来源:力扣(LeetCode) python解法 中午不睡,下午崩溃~ 已经做过了几个括号有关的题,于是这次自然而然地想到了要用栈,但是却想不

Java - 【时间类】Date、Instant与LocalDateTime

Java - 【时间类】Date、Instant与LocalDateTime JDK8之前 java.util.Date SimpleDateFormat parse format abstartct Calendar( 不介绍 ) JDK8及之后 时区问题 直接加8小时( TimeUnit.HOURS.toMillis(8) ) Instant默认时区UTC,比中国时间少8H LocalDateT

[Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的

[Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具 作者:HelloGitHub- 小鱼干 JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发。JeecgBoot 采用开发模式:Online Coding 模式- 代码生成器模式- 手工 MERGE 智能开发,帮助解决

idea设置将普通文件夹设置为resourses资源文件夹或者java代码根

idea设置:将普通文件夹设置为resourses资源文件夹或者java代码根目录文件夹 如下图所示的resources文件夹不是一个资源文件夹,所以无法读取文件夹下配置文件的内容,配置文件也无法生效。具体操作如下: 选中resources文件夹 = 右键 = 选择Mark Directory a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值