Java 将JFrame setTitle(字符串)重载为setTitle(int)
我的课程是更改JFrame的setTitle方法,因此它允许整数作为参数。怎么做?我必须让那个方法过载,对吗?我在setTitle方法中尝试的任何操作都会导致堆栈溢出Java 将JFrame setTitle(字符串)重载为setTitle(int),java,swing,jframe,overloading,Java,Swing,Jframe,Overloading,我的课程是更改JFrame的setTitle方法,因此它允许整数作为参数。怎么做?我必须让那个方法过载,对吗?我在setTitle方法中尝试的任何操作都会导致堆栈溢出 import javax.swing.*; public class MyFrame extends JFrame { MyFrame() { super(); setSize(400, 400); // Standard initial size s
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);
}
}
方法
setTitle
from
然后
frame.setTitle(“1000”)
将起作用您似乎在重载方法方面走上了正确的道路。尝试:
public void setTitle(int title)
{
super.setTitle(""+title);
}
我没有看到限制原始字符串参数的要求;这只是将另一个重载方法添加到子类中
注意:同意Robin的观点,这是一个有点奇怪和做作的例子。。。既然标题通常是字符串,那么为什么要更改它…我的课程是更改setTitle的标准方法,这样它就可以接受整数而不再接受字符串。@ANW00D这是不可能的。您可以添加一个额外的
setTitle
方法,但不能避免仍然可以传递字符串。除此之外,这也是我听说过的扩展JFrame的最奇怪的原因之一。也许我过度解读了这一课:“使用setTitle(…),这样你就可以在标题中写数字了。”但这是什么课呢?我永远不会使用自定义的setTitle,而是使用标准方法。@ANW00D:如果您只需使用Integer.toString(title)
并将其作为参数传递给setTitle()
方法,类似于frame.setTitle(Integer.toString(title))
。这难道不会做同样的事情吗?@ANW00D这在纯Java中是不可能的,Java容器来自本机操作系统,以Java APIsYeah实现的形式和方法!我不知道它应该教我什么。下个星期我希望知道更多。你能发布stacktrace吗?
public void setTitle(int title)
{
super.setTitle(""+title);
}