首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionListener事件处理

ActionListener事件处理
EN

Stack Overflow用户
提问于 2010-06-16 20:37:14
回答 1查看 830关注 0票数 1

为同意服务条款的复选框和接受和拒绝按钮编写代码。

我需要一个异常处理的帮助

如果用户没有选中复选框,那么当他们点击accept时,会出现一条错误消息,告诉用户他没有选中该复选框。

如何使用这两个参数编写错误处理异常?

代码语言:javascript
复制
import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math.*;
import java.lang.Integer.*;
import java.lang.Object.*;
import java.util.*;
import java.util.Random;
import java.io.*;
import java.text.*;
import java.text.DecimalFormat.*;

public class JFrameWithPanel extends JFrame implements ActionListener, ItemListener
{
    int packageIndex;
    double price;
    double[] prices = {49.99, 39.99, 34.99, 99.99};

    DecimalFormat money = new DecimalFormat("$0.00");
    JLabel priceLabel = new JLabel("Total Price: "+price);
    JButton button = new JButton("Check Price");
    JComboBox packageChoice = new JComboBox();
    Font newFont = new Font("Helvetica", Font.BOLD, 14);
    JPanel pane = new JPanel();
    TextField text = new TextField(5);
    JButton accept = new JButton("Accept");
    JButton decline = new JButton("Decline");
    JCheckBox serviceTerms = new JCheckBox("I Agree to the Terms of Service.", false);
    JTextArea termsOfService = new JTextArea("This is a text area", 5, 10);

    public JFrameWithPanel()
    {
        super("JFrame with Panel");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pane.add(packageChoice);
        setContentPane(pane);
        setSize(250,250);
        setVisible(true);

        packageChoice.addItem("A+ Certification");
        packageChoice.addItem("Network+ Certification ");
        packageChoice.addItem("Security+ Certifictation");
        packageChoice.addItem("CIT Full Test Package");

        pane.add(button);
        button.addActionListener(this);

        pane.add(text);
        text.setEditable(false);
        text.setBackground(Color.WHITE);
        text.addActionListener(this);

        pane.add(termsOfService);
        termsOfService.setEditable(false);
        termsOfService.setBackground(Color.lightGray);

        pane.add(serviceTerms);
        serviceTerms.addItemListener(this);

        pane.add(accept);
        accept.addActionListener(this);

        pane.add(decline);
        decline.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e)
    {
        packageIndex = packageChoice.getSelectedIndex();
        price = prices[packageIndex];
        text.setText("$"+price);

        Object source = e.getSource();

        if(source == accept)
        {
            JOptionPane.showMessageDialog(this,"Thank you for choosing our tests. Enjoy!");
        }
        else if(source == decline)
        {
            System.exit(0);
        }
    }

    public void itemStateChanged(ItemEvent e)
    {
        int select = e.getStateChange();

        if(select == ItemEvent.DESELECTED)
        {
            JOptionPane.showMessageDialog(null,"Please agree to the terms of service.");
        }
        else
        {

        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2010-06-16 21:13:45

为什么不检查一下isSelected是不是真的?

代码语言:javascript
复制
if (!serviceTerms.isSelected())
    JOptionPane.showMessageDialog(null, "You have not accepted the terms.");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3053264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档