2013-07-06 4 views
-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이라고합니다(). 심지어를 선택한 후

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); 
} 

: 클래스의 시작에서 난 그냥이 클래스의 관련 코드를 게시 할 예정 변수가

AdminMenu AdminMenu=new AdminMenu(); 
DataValidation validate=new DataValidation(); 
ConnectDB db=new ConnectDB(); 

을 사용하여 정의 된 클래스의 객체를 생성 콤보 상자 옵션을 활성화하려면 LogInMenu 클래스 으로 돌아가서 로그인하려고하면 "투표가 현재 비활성화되었습니다."라는 오류 메시지가 나타납니다.

나는 정말로 도움이되는 어떤 도움을 주셔서 감사합니다, 감사합니다!

P.S : 토글 버튼을 사용하는 방법과 관리자 메뉴에 로그인 할 때 토글 버튼을 사용하는 방법 또는 토글 버튼을 사용하는 방법을 알 수는 없습니다.

그래서 대신 combox 상자를 사용하여 변수 값을 설정합니다.

+4

예수님의 코드가 엉망입니다! 버튼 이름을 지정하고 "val"또는 "x"와 같은 변수 이름을 사용하지 마십시오. 아무도 그들이 무엇인지 전혀 모른다. 또한 Java에 표준 명명 규칙을 사용하는 방법을 배우십시오. – ejk314

+4

그리고이 코드를 많이 붙여 넣지 마십시오. 아무도 실제로이 모든 것을 읽을 수는 없으며 적어도 9/10이 필요하지 않기 때문에 특히 그렇습니다. 우리는 예를 들어'initComponents()'에 대해 조금 신경 쓰지 않습니다. 우리는 일반적으로 그 곳에서 어떤 일이 일어나고 그것을 붙일 필요가 없음을 알고 있습니다 ... – luk2302

+0

여기에 '가져 오기 오류'가 없습니다. 예기치 않은 (당신에게) 런타임 동작이 있습니다. 제목을 조정하십시오. – EJP

답변

1

내가 가진 문제는 .. 내가 선택하더라도 변화, 난 여전히 거짓 출력을 받고 있어요 true로 부울 값을 의미하는 사용하도록 설정하는 것이

인 요소 때문에 JComboBoxvCycle{ "Disabled", "Enabled", " " }이고 truefalseselectedItem입니다. 또는 Enabled에 대해 vCycle의 값을 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 클래스에 있으며, 여기서 im은 그것을 호출합니다. AdminMenu라는 객체를 만들었 기 때문에 동일한 인스턴스에 사용 된 변수에 액세스 할 수있었습니다. –

관련 문제