JComboBox组件类的添加对象问题

 JComboBox组件添加数据项的时候,addItem(Object o);此添加函数的参数是对象类型,那么一下情况就会出现问题。
    如果有一个类  class  aaa{ public String id;    public String name; }
    创建一个对象  aaa   duixiang=new aaa();
                            duixiang.id=new String("0001");
                            duixiang.name=new String("hello");
    创建一个组件对象JComboBox  com=new JComboBox();
    那么com.addItem(duixiang);这条语句在执行的时候不会显示错误,而是会通过执行,但是添加到com组件中的内容确是有问题,不是正确的内容。
    那么对于这种情况,我们只可选择添加aaa类中的成员变量当中的一个到JComboBox组件中,比如讲aaa类中的name变量值添加到组件中。关键代码如下:(在aaa类中添加一个toString()函数,准确的说是重写toString()函数)
    class aaa{public String id;    public String name;   public String toString(){ return this.name; }}


    然后com.addItem(duixiang); 执行的结果就是将"hello"添加到com组件中作为一个项。
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
超级万年历 1.课程设计的目的 《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实 践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业 学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计 目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开 发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进 行软件开发、并在实践应用方面打下一定基础。编写一个万年历理解图像界面的基本组 织窗口,以及、方法的调用,以及添加控件、并在窗口中显示,可以对年份、月份、 当前的时间进行查询方便用户的使用。 2.设计方案论证 2.1需求分析 本次课程设计是编写一个万年历程序,主要目的是加强对Java的实际运用,了解图形 用户界面的基本组件窗口、按纽(JButton)、标签(JLabel)、下拉表组件(JComboBox)、 文本框(TextBox)、选择框、查询事件的处理,菜单的设计还有日期的计算等的使用方法 ,了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。 万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查找,通 过在年份对应的下拉菜单中选择要查询的年份,再相应的在月份对应的下拉菜单选择要 查询的月份,则可得到相应的日历。此外,还可以显示出数字时间,很方便用户的查询 。 本实验是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写 独立运行的窗口。 2.2概要设计 本程序涉及三个,MainFrame为显示日期部分的,是程序中的主,ClockActio n 是对所要查询的年份及其月份进行选择的,Clock是对当前时间进行显示的,位与整 个界面的底部,程序运行时,只要运行MainFrame即可显示出日期以及时间的详细信息。 以下是对这三个的具体说明。 2.2.1自定义说明 (1) ClockAction 作用:获取当前下拉列表中所选择的信息 实现的接口:ActionListener ActionListener用于接收操作事件的侦听器接口。使用该创建的对象可使用组件addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的 actionPerformed 方法。ActionEvent指示发生了组件定义的动作的语义事件。当特定于组件的动作(比如 被按下)发生时,由组件生成此高级别事件。事件被传递给每一个 ActionListener 对象,这些对象是使用组件addActionListener 方法注册的,用以接收这事件。 ClockAction的具体实现如下: //对当前所选年份、月份的查询 class ClockAction implements ActionListener { public void actionPerformed(ActionEvent arg0) { int c_year, c_month, c_week; // 得到当前所选年份 c_year = Integer.parseInt(com1.getSelectedItem().toString()); // 得到当前月份,并减1,计算机中的月为0-11 c_month = Integer.parseInt(com2.getSelectedItem().toString())-1; // 调用函数use,得到星期几 c_week = use(c_year, c_month); // 调用函数Resetday Resetday(c_week, c_year, c_month); } } (2) MainFrame 作用:主 继承的父:JFrame 实现的接口:没有 JFrame是MainFrame的父,当用户试图关闭窗口时,JFrame 知道如何进行响应。用户关闭窗口时,默认的行为只是简单地隐藏 JFrame。在多屏幕环境中,可以在不同的屏幕设备上创建一个 JFrame。 主要方法说明: public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); new MainFrame(); } (3) Clock 作用:显示时间的 继承的父:Canvas 实现的接口:Runnable Canvas是Clock的父,它表示屏幕上一个空白矩形区域,应用程序可以在该区域内 绘图,或者可以从该区域捕获用户的输入事件。Runnable接口由Clock来实现,设计该 接口的目的是为希望在活动时执行代码的对象提供一个公共协
JComboBox是Java Swing库中的一个组件,它可以让用户从下拉菜单中选择一个选项。下面是JComboBox的基本用法: 1. 创建JComboBox对象: ```java JComboBox comboBox = new JComboBox(); ``` 2. 添加选项: ```java comboBox.addItem("Option 1"); comboBox.addItem("Option 2"); comboBox.addItem("Option 3"); ``` 3. 设置默认选项: ```java comboBox.setSelectedIndex(0); // 默认选择第一项 ``` 4. 监听选择事件: ```java comboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JComboBox comboBox = (JComboBox) e.getSource(); String selectedOption = (String) comboBox.getSelectedItem(); // 处理选择事件 } }); ``` 完整示例代码: ```java import javax.swing.*; import java.awt.event.*; public class ComboBoxDemo implements ActionListener { JComboBox comboBox; public ComboBoxDemo() { JFrame frame = new JFrame("ComboBox Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); comboBox = new JComboBox(); comboBox.addItem("Option 1"); comboBox.addItem("Option 2"); comboBox.addItem("Option 3"); comboBox.setSelectedIndex(0); comboBox.addActionListener(this); frame.add(comboBox); frame.pack(); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { JComboBox comboBox = (JComboBox) e.getSource(); String selectedOption = (String) comboBox.getSelectedItem(); System.out.println("Selected option: " + selectedOption); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new ComboBoxDemo(); } }); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值