Java Swing星座选择器界面的实现

在了解各种基本组件的使用,以及常见事件的处理之后,本案例将综合文本框、按钮和下拉列表组件,实现一个星座选择器程序。程序允许用户在下拉列表中选择一个自己的星座,如果不在列表中还可以增加星座,也可以删除星座。实现过程如下。

(1) 创建一个 SampeDemo 类,在 main() 方法中调用它的构造方法。代码如下:

  1. package ch17;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.ItemEvent;
  5. import java.awt.event.ItemListener;
  6. import javax.swing.JButton;
  7. import javax.swing.JComboBox;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11. import javax.swing.JTextField;
  12. public class SampeDemo
  13. {
  14. public static void main(String[] args)
  15. {
  16. new SampeDemo(); //调用构造方法
  17. }
  18. }

(2) 创建 SampeDemo 构造方法完成窗口的创建,按钮和下拉列表的添加,以及相应事件的监听。具体代码如下:

  1. private JPanel panel=new JPanel();
  2. private JComboBox cmb=new JComboBox(); //创建JComboBox
  3. private JLabel label=new JLabel("添加新星座:");
  4. private JLabel showInfo=new JLabel(); //用于显示信息
  5. private JTextField jtf=new JTextField(16); //用于输入信息
  6. private JButton buttonAdd=new JButton("新增");
  7. private JButton buttonDel=new JButton("删除");
  8. public SampeDemo()
  9. {
  10. JFrame frame=new JFrame("选择你的星座");
  11. cmb.addItem("--请选择--"); //向下拉列表中添加一项
  12. cmb.addItem("巨蟹座");
  13. cmb.addItem("狮子座");
  14. cmb.addItem("双鱼座");
  15. panel.add(cmb);
  16. panel.add(label);
  17. panel.add(jtf);
  18. panel.add(buttonAdd);
  19. panel.add(buttonDel);
  20. frame.add(panel);
  21. buttonAdd.addActionListener(new MyActionListener()); //“添加”按钮的事件
  22. buttonDel.addActionListener(new MyActionListener()); //“删除”按钮的事件
  23. cmb.addItemListener(new MyItemListener()); //下拉列表的事件
  24. frame.setBounds(300,200,600,200);
  25. frame.setVisible(true);
  26. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27. }

上述程序创建的下拉列表为 cmb,调用它的 addItem() 方法向其中添加了两个选项。程序分别监听了按下“新增”按钮和“删除”按钮时的单击事件,以及从下拉列表中选择项时的选中事件。

(3) 创建 MyItemListener 类,实现 ItemListener 接口对选中事件进行处理,此时将选中项显示到文本框中。实现代码如下:

  1. // 监听选中事件
  2. class MyItemListener implements ItemListener
  3. {
  4. @Override
  5. public void itemStateChanged(ItemEvent e)
  6. {
  7. String str=e.getItem().toString();
  8. panel.add(showInfo);
  9. showInfo.setText("您选择的星座是:"+str);
  10. }
  11. }

(4) 创建 MyActionListener 类,实现 ActionListener 接口对按钮的单击事件进行处理。实现代码如下:

  1. // 监听添加和删除按钮事件
  2. class MyActionListener implements ActionListener
  3. {
  4. @Override
  5. public void actionPerformed(ActionEvent e)
  6. {
  7. String command=e.getActionCommand();
  8. //添加按钮处理
  9. if(command.equals("新增"))
  10. {
  11. if(jtf.getText().length()!=0)
  12. {
  13. cmb.addItem(jtf.getText()); //添加项
  14. panel.add(showInfo);
  15. showInfo.setText("添加成功,新增了:"+jtf.getText());
  16. }
  17. else
  18. {
  19. panel.add(showInfo);
  20. showInfo.setText("请输入要添加星座");
  21. }
  22. }
  23. //删除按钮处理
  24. if(command.equals("删除"))
  25. {
  26. if(cmb.getSelectedIndex()!=-1)
  27. {
  28. //先获得要删除的项的值
  29. String strDel=cmb.getSelectedItem().toString();
  30. cmb.removeItem(strDel); //删除项
  31. panel.add(showInfo);
  32. showInfo.setText("删除成功,删除了:"+strDel);
  33. }
  34. else
  35. {
  36. panel.add(showInfo);
  37. showInfo.setText("请选择要删除的星座");
  38. }
  39. }
  40. }
  41. }

(5) 运行程序,在下拉列表中会出现 4 个选项,选择其中的“狮子座”项,此时显示效果如图 1 所示。


图1 添加项

(6) 从下拉列表中选择“狮子座”项,再单击“删除”按钮即可删除该项,如图 2 所示。


图2 显示选中项

(7) 在文本框中输入要添加的项并单击“新增”按钮,在下拉列表中将出现添加的项。图 3 所示为添加“处女座”后的效果。


图3 删除项

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值