我试图使一个if语句,当用户从组合框中选择,它恰好是从数学确定的数字。随机,它将显示一条消息。我已经建立了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新手
将随机数作为类的实例变量,并将其填充到构造函数中。向组合框添加一个操作监听器(希望您已经这样做了)。在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));
}
}
}
}