2014-01-08 77 views
1

我正在做我的第一次經驗與java swing和一般的java。任何人都可以告訴我「this.button1」(例如)指向哪個對象?有沒有可能取代「這個」?我已經讀過「這個」是指向一個實際的對象,但是在這種情況下哪一個呢?哪個對象指向「this」?

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 


public class BeispielListener extends JFrame implements ActionListener 
{ 
JButton button1; 
JButton button2; 
JButton button3; 
JLabel label; 
JPanel panel; 

public BeispielListener(){ 
    this.setTitle("ActionListener Beispiel"); 
    this.setSize(400, 200); 
    panel = new JPanel(); 

    // Leeres JLabel-Objekt wird erzeugt 
    label = new JLabel(); 

    //Drei Buttons werden erstellt 
    button1 = new JButton("Button 1"); 
    button2 = new JButton ("Button 2"); 
    button3 = new JButton ("Button 3"); 

    //Buttons werden dem Listener zugeordnet 
    button1.addActionListener(this); 
    button2.addActionListener(this); 
    button3.addActionListener(this); 

    //Buttons werden dem JPanel hinzugefügt 
    panel.add(button1); 
    panel.add(button2); 
    panel.add(button3); 

    //JLabel wird dem Panel hinzugefügt 
    panel.add(label); 
    this.add(panel); 
} 

public static void main(String[] args) 
{ 
    // Ein neues Objekt der Klasse BeispielListener wird erzeugt 
    // und sichtbar gemacht 
    BeispielListener bl = new BeispielListener(); 
    bl.setVisible(true); 
} 

public void actionPerformed (ActionEvent ae){ 
    // Die Quelle wird mit getSource() abgefragt und mit den 
    // Buttons abgeglichen. Wenn die Quelle des ActionEvents einer 
    // der Buttons ist, wird der Text des JLabels entsprechend geändert 
    if(ae.getSource() == this.button1){ 
     label.setText(("Button 1 wurde betätigt")); 
    } 
    else if(ae.getSource() == this.button2){ 
     label.setText("Button 2 wurde betätigt"); 
    } 
    else if (ae.getSource() == this.button3){ 
     label.setText(("Button 3 wurde betätigt")); 
    } 
} 
} 

謝謝!

+1

「this」指向當前對象 –

回答

1

this指向您正在使用的當前對象。因此,在您的代碼中,它指向BeispielListener實例。

1

doc

在實例方法或構造,這是當前的對象的引用 - 其方法或構造被調用的對象。您可以使用此方法從實例方法或構造函數中引用當前對象的任何成員。

這裏this.button1被refenrecing當前類

button1變量讀取完整的文檔,你會得到一個明確的概念。

0

在Java中this不過是您當前正在工作的對象的參考。在這種情況下,它是BeispielListener的參考。