Concat a Title“GetTitle()。Concat(GetTitle()));”

时间:2015-09-10 03:23:49

标签: java swing jframe awt concat

今天我尝试在Java上做一个“窗口”的例子。我尝试Concat标题,但我的“GetTitle()”不起作用!有人可以帮我这个吗?

为什么“公共级MiVentana扩展JFrame {”和“MiVentana Frame =新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

1 个答案:

答案 0 :(得分:1)

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

使用MiVentana.this应该引用窗口​​,而不是听众,您将能够获取并设置标题。

This post描述了发生了什么更好 - 基本上你想要来自封闭类的this,而不是封闭的类。

基本上不是这样做的:

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

你需要这样做:

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