2014-12-07 5 views
0

Второго класса:Доступ к компонентам другого класса

@Override 
public void actionPerformed(ActionEvent e){ 
    // TODO Auto-generated method stub 
    if(e.getSource() == buy) { 
     System.out.println("hi"); 
    } 
} 

Я хочу, чтобы получить доступ к JTextArea из другого класса и добавить его с «приветом». так вот что будет происходить каждый раз, когда я нажимаю кнопку Купить текстовую область в другой класс будет добавлять «привет»

Пробовал решения:

Второй класс

public void somelistener(ccp asd){ 
    this.asd = asd; 
    this.area = asd.getTextArea(); 
    area.setText("hi"); 
} 

Первый класс

public JTextArea getTextArea(){ 
    return ta; 
} 

Каждый раз, когда я нажимаю кнопку, в текстовом поле ничего не отображается.

+3

Я думаю, что вы имеете в виду 'area.setText (area.getText() + "привет");' – blad

+0

все еще не работает PNC

ответ

0

вы можете использовать вложенные классы с настройкой, чтобы решить вашу проблему. Вы должны установить компонент JTextArea как переменную экземпляра основного класса. Таким образом, второй класс (с помощью actionListener) может получить доступ к переменной. Если вы создали JTextArea внутри конструктора, доступ к нему ограничен. например: -

Public SomeClass{ 
    private JTextArea txtArea; // declaring the object here makes it 
           accessible from nested classes 

    SomeClass(){ 
     txtArea = new JTextArea(); // initialization of the object 
    } 
    class Listener(Event evt) 
    { 
     //Now you xcan use your method :) 
    } 

}

Edit: -

ОК здесь является еще одним примером.

Public class MyPanel extends JPanel{ 

private JButton btnOK;    //declaring JButton and JTextArea as member 
            // variables of class MyPanel 
private JTextArea txtArea ; 


    MyPanel(){     //constructor 
     setBackground(Color.RED); 
     btnOK = new JButton("OK");   // initializing JButton and JTextArea 
     txtArea = new JTextArea("HEllo"); 
     NestedListener mylistener = new NestedListener(); //creating a listener 
     btnOK.addActionListener(mylistener); // adding the listener to the button 
     add(btnOK); 
     add(txtArea); 
    } 
    NestedListener implements ActionListener{ //Nested listener class 
               //which means it is within 
               //the curly brackets of the 
               //first class   
    public void actionPerformed(ActionEvent evt){ 

      String text = txtArea.getText(); //txtArea is directly accessible here 
      txtArea.setText(text + " Again"); 
    } 

    } 

}

+0

Пожалуйста, вы можете объяснить его дальше с большим количеством примеров кода ? – PNC

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