2013-03-27 61 views
2

我的課程是更改JFrame的setTitle方法,因此它允許整數作爲參數。怎麼做?我必須重載該方法,對嗎?我在setTitle方法中嘗試的任何內容都以堆棧溢出結束。重載JFrame setTitle(String)爲setTitle(int)

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); 
    } 
} 
+0

你能後的堆棧跟蹤? – rainkinz 2013-03-27 23:16:50

回答

1

方法setTitleJFrames API

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

然後frame.setTitle("1000");將作品

+0

我的課程是更改setTitle的標準方法,因此它接受整數並且不再有字符串。 – ANW00D 2013-03-27 11:22:31

+0

@ ANW00D這根本不可能。你可以添加一個額外的'setTitle'方法,但是你不能避免你仍然可以傳遞一個'String'。此外,這將是擴展'JFrame'的最奇怪的原因之一,我曾聽說過 – Robin 2013-03-27 11:24:42

+0

。也許我過分解釋了這一課:「使用setTitle(...),所以你可以在標題中寫數字。」那是什麼樣的教訓?我永遠不會使用我的自定義setTitle,而是使用標準方法。 – ANW00D 2013-03-27 11:29:32

1

你似乎是在正確的軌道相對於超載的方法。嘗試:

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

我沒有看到要求限制原始的String參數;這只是將另一個重載方法添加到您的子類。

注:同意羅賓,這是一個有些奇怪和人爲的例子......因爲通常一個標題是一個字符串,爲什麼還要改變它...

+0

是啊!我不知道它應該教給我什麼。下個星期我更希望知道更多。 – ANW00D 2013-03-27 12:10:58