2016-04-03 3 views
0

Dies ist meine Codes. Ich hatte ein Problem mit Check1-Label, weil ich möchte, dass es sichtbar ist, wenn die Antwort richtig ist, indem ich Card Layout dafür verwende. i entfernen Sie die nicht wichtig CodesWie setze ich Visible (true) ein JLabel aus einer anderen Klasse

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

}} 

und hier ist die andere Klasse, wenn Sie die Submit1 Knopf klicken, und wenn der Text in der JTextField korrekt ist, möchte ich die Check1 Taste sichtbar sein.

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

Antwort

1

Fabrikat check1 ein Feld der Klasse und nicht statisch und dann eine öffentliche Methode macht zur Einstellung der Sichtbarkeit:

Beispiel:

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

dann, da Sie eine Instanz hat von Kategorie1, können Sie tun:

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

Hallo Xoce 웃 Пepeúpa ich mache JLabel Check1 ein Feld der Klasse. dann rufe ich in der anderen Klasse die öffentliche Methode namens setCheck1Visibility auf und setze sie auf true. if (Answer1.getText(). EqualsIgnoreCase ("Fila")) { Answer1.setEditable (false); c1.setCheck1Visibility (wahr); JOptionPane.showMessageDialog (null, "Korrigieren"); } aber es ist immer noch nicht sichtbar – Mashiro

+0

dann müssen Sie überprüfen, ob alles in Ordnung ist ok mit dem * setBounds * oder mit dem Bild ... –

+0

wenn ich den Check1 auf setCheck1Visibility (true) auf Category1 setzt es funktioniert gut, aber Wenn ich c1.setCheck1Visiblity (true) auf QuizPanelc1 funktioniert es nicht oder es ist nicht sichtbar. – Mashiro

Verwandte Themen