Java 如何使用作为变量传入的类中的方法
我在多个jframe中有jlabel,它们都用于作为状态指示器。在类控制器中,我有一个方法可以更改给定JFrame中的JLabel我的问题是如何引用JFrame作为变量?Java 如何使用作为变量传入的类中的方法,java,swing,compiler-errors,Java,Swing,Compiler Errors,我在多个jframe中有jlabel,它们都用于作为状态指示器。在类控制器中,我有一个方法可以更改给定JFrame中的JLabel我的问题是如何引用JFrame作为变量? import javax.swing.*; public class Controller { public static class Status { public static void vPrint(JFrame frame, String text) { JLabel
import javax.swing.*;
public class Controller {
public static class Status {
public static void vPrint(JFrame frame, String text) {
JLabel label = frame.getConsoleLabel();
label.setText(text)
}
}
}
所以当我在JFrame中调用它时:
Controller.Status.vPrint(这是“设置JLabel文本”)代码>
所有jFrame都有方法getConsoleLabel()
问题是,当我调用它时,它说:找不到symbol:method
,我认为原因是变量框架没有被引用
有什么解决方案吗?似乎您正在将JFrame
扩展到某个类,但试图在超级类JFrame
上调用getConsoleLabel()
,而该类没有这样的方法。因此,是的,您不能在JFrame
的实例上调用getConsoleLabel
,无论该实例的引用引用引用的是哪种类型。而是声明您自己的框架MyFrame扩展了JFrame
,它实现了getConsoleLabel()
使用参数typeMyFrame
更改vPrint
的签名,并将类型MyFrame
的所需实例传递给vPrint
不要像安德鲁建议的那样使用多个JFrame
。按照他链接的答案进行操作。似乎您正在将JFrame
扩展到某个类,但试图在超级类JFrame
上调用getConsoleLabel()
,而该类没有这样的方法。因此,是的,您不能在JFrame
的实例上调用getConsoleLabel
,无论该实例的引用引用引用的是哪种类型。而是声明您自己的框架MyFrame扩展了JFrame
,它实现了getConsoleLabel()
使用参数typeMyFrame
更改vPrint
的签名,并将类型MyFrame
的所需实例传递给vPrint
不要像安德鲁建议的那样使用多个JFrame
。按照他链接的答案进行操作。好吧,你有getConsoleLabel()
方法
您有两种解决方案:
使用getConsoleLabel()
创建一个接口,并使所有JFrame
实现该接口。并更改vPrint
的签名以接受接口实例,而不是JFrame
创建一个类,例如LabledFrame extensed JFrame
,它具有getConsoleLabel()
,并从中扩展所有JFrame
,然后更改vPrint
以接受LabledFrame
的实例,而不是JFrame
您专门使用了JFrames
s的getConsoleLabel()
方法
您有两种解决方案:
使用getConsoleLabel()
创建一个接口,并使所有JFrame
实现该接口。并更改vPrint
的签名以接受接口实例,而不是JFrame
创建一个类,例如LabledFrame extensed JFrame
,它具有getConsoleLabel()
,并从中扩展所有JFrame
,然后更改vPrint
以接受LabledFrame
的实例,而不是JFrame
“我有多个JFrames中的JLabel…”1)请参见2)如需更快地获得更好的帮助,请发布一条消息。“我有多个JFrames中的JLabel…”1)请参见2)如需更快地获得更好的帮助,请发布一条消息。