2

我的教训是改变 JFrame 的 setTitle 方法,所以它允许整数作为参数。怎么做?我必须重载该方法,对吗?我在 setTitle 方法中尝试的任何操作都以堆栈溢出结束。

import javax.swing.*;

public class MyFrame extends JFrame
{       
    MyFrame()
    {
        super();
        setSize(400, 400); // Standard initial size
        setVisible(true);
        setDefaultCloseOperation(MyFrame.EXIT_ON_CLOSE);
    }

    MyFrame(int size)
    {
        this();
        setSize(size, size); 
    }

    public void setTitle(int title)
    {           


    }

}


public class MainClass 
{
    public static void main(String[] args) 
    {   
        MyFrame frame = new MyFrame();
        frame.setTitle(1000);
    }
}
4

2 回答 2

1

在重载方法方面,您似乎走在了正确的轨道上。尝试:

public void setTitle(int title)
{           
    super.setTitle(""+title);
}

我没有看到限制原始 String 参数的要求;这只是向您的子类添加另一个重载方法。

注意:同意罗宾的观点,这是一个有点奇怪和做作的例子......因为通常标题是一个字符串,所以为什么要改变它......

于 2013-03-27T12:03:12.383 回答
1

setTitle来自JFrames API的方法

public void setTitle(String title)
Sets the title for this frame to the specified string.

然后frame.setTitle("1000");将是作品

于 2013-03-27T11:17:44.940 回答