2015-03-21 3 views
0

Так что у меня этот код:Java Внутренний доступ класс слушателя другой внутренний класс, назвав его

public class TabTaches extends JPanel { 
    //TabTaches Variables 

    TabTaches() { 
     // Constructor content 
    } 

    private class NouvelleTache extends JFrame { 
     // Nouvelle Tache Variables 

     NouvelleTache() { 
      ecouteur = new Ecouteur(); 

      this.setTitle("Nouvelle tache"); 
      this.setSize(300, 200); 
      this.setLocationRelativeTo(null); 
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      this.setLayout(new GridLayout(3, 2)); 

      annuler = new JButton("Annuler"); 

      annuler.addActionListener(ecouteur); 

      this.add(annuler); 
     } 
    } 

    private static class Ecouteur implements ActionListener { 
     NouvelleTache nt; 

     public void actionPerformed(ActionEvent e) { 
      if(((AbstractButton)e.getSource()).getText().equals("Annuler")) { 
       Something.dispose(); 
      } 
     } 
    } 
} 

Я не знаю, как управлять Something.dispose(); Я знаю, что вы можете получить доступ к внешней класс, используя TabTaches.this.dispose();, но вот то, что я хотите закрыть - NouvelleTache. Есть ли способ сделать это? Правильно ли это синтаксически, или я должен создать целый класс для NouvelleTache? Я думал о том, чтобы сделать его внутренним классом, потому что мне нужен он только в TabTaches, но, возможно, я слишком усложняю здесь. Вы можете мне помочь? Спасибо.

ответ

0

Я решил ее отделение Слушателей для внешнего класса и внутреннего класса, таким образом я могу получить доступ к экземпляру нта с описанным выше способом TabTaches.this.dispose(); Я не совсем уверен, если это правильно, хотя, но это работает.

Смежные вопросы