2016-04-03 5 views
0

これは私のコードです。 Check1 Labelに問題がありました。なぜなら、カードレイアウトを使用しているのと同様に、Answerが正しいときにVisibleにしたいからです。 は私がいない重要なコード 他のクラスのJLabelをどのように設定するのですか

public class Category1 extends JPanel { 
public static JLabel Check1; 
    public Category1() { 


    Check1 = new JLabel(newImageIcon(getClass().getResource("Buttons/Check.png"))); 
    Check1.setBounds(75 , 305, 40, 40); 
    Check1.setVisible(false); 
    add(Check1); 

}} 

を削除し、ここにあなたがSubmit1ボタンをクリックすると、他のクラスだし、JTextFieldの内のテキストが正しい場合、私はCHECK1ボタンが見えるようにしたいです。

public class QuizPanelc1 { 
    JPanel Quiz1; 
    JTextField Answer1; 
    JButton Submit1; 

public QuizPanelc1(){ 

    Answer1 = new JTextField(); 
    Answer1.setBounds(180, 480, 200, 40); 
    Quiz1.add(Answer1); 
    Submit1 = new JButton(new ImageIcon(getClass().getResource("Buttons/SubmitButton.png"))); 
    Submit1.setBounds(390, 480, 40, 40); 
    Quiz1.add(Submit1); 

ButtonHandler1 events1 = new ButtonHandler1(); 
    Submit1.addActionListener(events1); 
    Back1.addActionListener(events1) 

} 
private class ButtonHandler1 implements ActionListener { 
    public void actionPerformed (ActionEvent eventClick) { 
     Object event = eventClick.getSource(); 
     Category1 c1 = new Category1(); 

     if(Submit1==event) 
     { 
      if(Answer1.getText().equalsIgnoreCase("Fila")) 
      { 
       Answer1.setEditable(false); 

       JOptionPane.showMessageDialog(null, "Correct"); 
       c1.Check1.setVisible(true); 

      } 
      else 
      { 

       JOptionPane.showMessageDialog(null, "Wrong Answer"); 

      } 
     } 
     else 
     { 
     System.exit(1); 
     } 
}} 

答えて

1

メイクCHECK1クラスのフィールドと、静的ではなく、可視性を設定するためのパブリックメソッドを作る:

例:あなたは、インスタンスを持っているので、その後

public class Category1 extends JPanel { 
    private JLabel check1; 

    public void setCheck1Visibility(boolean visible) { 
     check1.setVisible(visible); 
    } 

    public Category1() { 
     check1 = new JLabel(new ImageIcon(getClass().getResource("Buttons/Check.png"))); 
     check1.setBounds(75, 305, 40, 40); 
     check1.setVisible(false); 
     add(check1); 
    } 
} 

カテゴリ1の場合は、次の操作を実行できます。

Category1 c1 = new Category1(); 
c1.setCheck1Visibility(true); 
or 
c1.setCheck1Visibility(false); 
+0

こんにちは、私はJLabel Check1クラスのフィールドを作成します。他のクラスでは、私はsetCheck1Visibilityというパブリックメソッドを呼び出し、それをtrueに設定します。 if(Answer1.getText()。equalsIgnoreCase( "Fila")) { Answer1.setEditable(false); c1.setCheck1Visibility(true); JOptionPane.showMessageDialog(null、 "Correct"); } でもまだ表示されていません – Mashiro

+0

すべてがOK * okであればチェックする必要があります。 –

+0

カテゴリ1でsetCheck1Visibility(true)にCheck1を設定すると問題ありませんが、 QuizPanelc1でi c1.setCheck1Visiblity(true)を実行すると、動作していないか、または表示されません。 – Mashiro

関連する問題