if语句和math.random

时间:2014-06-17 18:45:06

标签: java if-statement jcombobox

我正在尝试制作一个if语句,当用户从组合框中选择并且它恰好是从math.random确定的数字时,它将显示一条消息。我已经设置了if语句。但是,这部分不起作用。 我无法判断它是否有效,因为我无法测试它。这是因为我不知道哪个日期是随机数。

int RandomDate = (int)Math.ceil(Math.random()*31);
    Out1.setText(RandomDate);
...
...
...
else if(Day.getSelectedItem().equals(RandomDate))
    {
        Out1.setText("This Day is Fully Booked");
    }

Out1是文本区域 Day是我的JComboBox的名称

感谢您的帮助。我可能只是犯了一个小错误,不知道我哪里出错,因为我是Java的新手

1 个答案:

答案 0 :(得分:0)

使随机数成为类的实例变量,并在构造函数中填充它。在组合框中添加一个动作监听器(希望你已经这样做了)。在actionPerformed()方法中,获取所选项并将其与随机数实例变量进行比较:

import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class SamplePane extends JFrame implements ActionListener   {

    private static final long serialVersionUID = -1775096938821736542L;

    private JTextArea textArea;
    private JComboBox<Integer> combo;
    private int RandomDate;

    public SamplePane() {

        //for the frame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,200);
        setLayout(new FlowLayout());

        //create combo box
        Integer[] nums = new Integer[31];
        for (int i=0; i < nums.length; i++) {
            nums[i] = i+1;
        }
        combo = new JComboBox<Integer>(nums);
        combo.addActionListener(this);
        add(combo);

        //create the random date
        RandomDate = (int)Math.ceil(Math.random()*31);

        //create a text area
        textArea = new JTextArea();
        textArea.setText(Integer.toString(RandomDate));
        add(textArea);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    SamplePane frame = new SamplePane();
                    frame.setVisible(true);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == combo) {
            int selItem = (Integer)combo.getSelectedItem();
            if (selItem == RandomDate) {
                textArea.setText("This Day is Fully Booked");
            } else {
                textArea.setText(Integer.toString(RandomDate));
            }
        }
    }

}