连接标题 "GetTitle().Concat(GetTitle()));"

Concat a Title "GetTitle().Concat(GetTitle()));"

今天我尝试在 Java 上做一个 "Window" 的例子。我尝试连接标题,但我的 "GetTitle()" 不起作用!谁能帮我解决这个问题?

以及为什么 "public class MiVentana extends JFrame {" 和 "MiVentana Frame = new MiVentana("Titulo");"说警告?

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

public class MiVentana extends JFrame {

public MiVentana (String Titulo){
    this.setTitle(Titulo);
    this.setSize(300,400);
    this.setLocation(160,80);
    this.setLayout(new FlowLayout());
    this.ConfigurarVentana();
    this.setVisible(true);
}

public void ConfigurarVentana(){
    JPanel panel = new JPanel();
    JButton boton = new JButton ("OK");
    boton.addActionListener(new EscuchadorBoton());
    panel.add(boton);
    this.add(panel);
}

class EscuchadorBoton implements ActionListener{
    public void actionPerformed(ActionEvent a){
        this.setTitle(this.getTitle().concat(this.getTitle()));
    }

}
public static void main(String[] args) {
    MiVentana Frame = new MiVentana("Titulo");
    //frameTest.setVisible(true);
            }
    }

编辑:我正在研究 Ubuntu 14.04 IDE Eclipse 3.8

ActionListener 中使用 this 指的是 EscuchadorBoton 侦听器,而不是 MiVentana 的实例 - 您的 JFrame.

使用 MiVentana.this 应该指的是 window,而不是侦听器,您将能够用它来获取和设置标题。

This post 更好地描述了正在发生的事情 - 基本上你想要 this 来自封闭的 class,而不是封闭的 class.

基本上不是这样做:

this.setTitle(this.getTitle().concat(this.getTitle()));

您需要这样做:

MiVentana.this.setTitle(MiVentana.this.getTitle().concat(MiVentana.this.getTitle()));