-1

我有两个类,一个称为 AdminMenu 类,其中变量 VoteCycle 是一个布尔变量,如果启用了 VoteCycle,它使选民能够投票,另一个类称为 LogInMenu,我想在其中使用它。

我正在为我的学校项目做这个。

我遇到的问题是,即使我选择了将布尔值更改为 true 的 enable ,我仍然得到错误的输出。如果你不明白我的意思,我下面的代码应该解释它。

它非常基本的编程。

班上

 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()。在类的开始,我创建了一个类的对象,其中变量在 using 中定义

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 类,如果我尝试登录,我会收到“投票当前被禁用”错误。

我非常感谢提供的任何帮助,谢谢!

PS:我不确定如何使用切换按钮并在登录管理员菜单时保留其状态,或者根本不知道如何使用切换按钮。

因此,我使用组合框来设置我的变量值。

4

2 回答 2

1

我遇到的问题是,即使我选择了 enable 这意味着将布尔值更改为 true ,我仍然得到错误的输出..

因为,您的元素是,而您JComboBox vCycle正在{ "Disabled", "Enabled", " " }检查selectedItemfortruefalse. 您应该比较vCyclefor DiabledorEnabled而不是trueand的选定值false

if(vCycle.getSelectedItem().toString().equalsIgnoreCase("Disabled"))
{
VoteCycle=true;
}
else if(vCycle.getSelectedItem().toString().equalsIgnoreCase("Enabled"))
{
VoteCycle=false;
}
}
于 2013-07-06T21:16:23.613 回答
0

除了检查 True 和 False 而不是 Enabled 和 Disabled 的错误文本值之外,您的代码不会处理两者都不是.

将您的代码更改为单行

VoteCycle = vCycle.getSelectedItem().toString().equalsIgnoreCase("Enabled");

它不仅代码更少,更具可读性,而且(以一种或另一种方式)满足这两种情况。

于 2013-07-06T21:33:25.960 回答