2013-07-06 39 views
-1

我有两个类,一个叫做AdminMenu类,其中变量VoteCycle是一个布尔变量,如果VoteCycle已启用,另一个类名为LogInMenu,我希望使用它。导入布尔变量时出错

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

我有的问题是,即使我选择启用这意味着将布尔值更改为true,我仍然得到错误的输出。如果你不明白我的意思,我的代码应该在下面解释一下。

其非常基本的编程。

的Class

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框来设置我的变量值。

+4

耶稣你的代码是一团糟!请为您的按钮命名并且没有像“val”或“x”这样的变量名称。没有人知道他们是什么。还请学习使用Java的标准命名约定。 – ejk314

+4

而且不要粘贴这么多的代码。没有人会真正阅读所有这些,特别是因为至少9/10是不需要的。例如,我们不关心你的'initComponents()'。我们通常知道,在那里发生了什么,不需要粘贴它...... – luk2302

+0

这里没有'导入错误'。有一个意想不到的(对你)运行时行为。请调整您的标题。 – EJP

回答

1

我的问题是,即使我选择是允许其目的是要 变化布尔值设置为true,我仍然得到假 输出..

因为,元素你的JComboBoxvCycle{ "Disabled", "Enabled", " " }而你正在检查selectedItemtruefalse。您应该比较vCycle的选定值DiabledEnabled而不是truefalse

if(vCycle.getSelectedItem().toString().equalsIgnoreCase("Disabled")) 
{ 
VoteCycle=true; 
} 
else if(vCycle.getSelectedItem().toString().equalsIgnoreCase("Enabled")) 
{ 
VoteCycle=false; 
} 
} 
0

除了检查的错误文本值真和假,而不是启用和禁用的,你的代码它是既不不处理的情况。

您的代码更改为单线

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

不仅是用于既不情况下更少的代码,并且更可读的,它迎合(单程或另一种)。

+0

这对我来说很愚蠢。我按照你所说的改变了代码,但是我收到了错误的值输出。当我在LogInMenu类中使用变量时,它看起来像值没有变化。 –

+0

你使用相同的实例吗?更好地发布调用相关方法的代码。 – Bohemian

+0

一切都在问题中。 VoteComboBoxActionPerformed在AdminMenu类中,EnterBtnActionPerformed在LogInMenu类中,即我称之为的类。我创建了一个名为AdminMenu的对象,以便我可以访问变量,它的全部用于同一个实例中。 –