我有两个类,一个名为AdminMenu的类,其中变量VoteCycle是一个布尔变量,只要启用了VoteCycle,就可以让投票人投票,而另一个叫做LogInMenu的类我希望使用它。
我正在为我的学校项目做这件事。
我遇到的问题是,即使我选择启用意味着将布尔值更改为true,我仍然得到错误的输出..如果你不明白我的意思,我的代码应该解释它。
它非常基本的编程。
班级
public class AdminMenu extends javax.swing.JFrame {
public boolean VoteCycle;
方法
private void VoteComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
if(vCycle.getSelectedItem().toString().equalsIgnoreCase("True"))
{
VoteCycle=true;
}
else if(vCycle.getSelectedItem().toString().equalsIgnoreCase("False"))
{
VoteCycle=false;
}
}
这是我想使用变量来允许用户登录的类。 该类称为LogInMenu()。 在课程开始时,我创建了一个类的对象,其中变量是使用
定义的AdminMenu AdminMenu=new AdminMenu();
DataValidation validate=new DataValidation();
ConnectDB db=new ConnectDB();
我将发布此课程的相关代码:
private void EnterBtnActionPerformed(java.awt.event.ActionEvent evt) {
if(AdminMenu.VoteCycle)
{
String Voter=voter.getText();
boolean detail = false;
if (validate.Verify(Voter))// Validates Data
{
try
{
detail = db.VoterLogIn(Voter);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
if (detail)
{
new VoterMenu().setVisible(true);
this.dispose();
}
else
{
JOptionPane.showMessageDialog(null, "The Username or Password entered is incorrect");// error message
}
}
}
else
{
JOptionPane.showMessageDialog(null, "Voting is currently disabled", "Error", JOptionPane.ERROR_MESSAGE);
}
即使选择了启用的组合框选项,我也会返回LogInMenu类 如果我尝试登录,则会收到“当前已禁用投票”错误。
我非常感谢您提供的任何帮助,谢谢!
P.S:我不确定如何使用切换按钮并在登录管理员菜单时保留其状态,或者根本不知道如何使用切换按钮。
所以我正在使用一个combox框来设置我的变量值。
答案 0 :(得分:1)
我遇到的问题是,即使我选择了启用功能 将布尔值更改为true,我仍然得到false 输出..
因为,JComboBox
vCycle
的元素是{ "Disabled", "Enabled", " " }
,而您正在检查selectedItem
和true
的{{1}}。您应该比较false
或vCycle
的{{1}}的选定值,而不是Diabled
和Enabled
。
true
答案 1 :(得分:0)
除了检查错误的文本值True和False而不是Enabled和Disabled之外,您的代码无法处理 的情况。
将您的代码更改为单行:
VoteCycle = vCycle.getSelectedItem().toString().equalsIgnoreCase("Enabled");
不仅代码更少,更易读,而且(