请允许我解释我正在尝试做的事情 - 我认为标题大致解释了它,但我不太确定我正在以正确的方式做事,所以如果我错了,请纠正我!
我使用LayeredPane
. 基本上 ajPanel
显示在 上POPUP_LAYER
,因此出现在主要内容的顶部。此面板包含一个简单的“label-textbox-okay-cancel”控件组。我将其称为“对话面板”。
我要做什么:当在主窗口(包含在 中LayeredPane
)上单击按钮时,将出现对话框面板并允许用户输入一些文本,然后单击确定或取消。这一切都很简单,但我希望这段代码可以重复使用,这意味着主窗口上的其他按钮将调用相同的Dialog Panel,但标签中的文本不同。
这当然需要我包含某种回调函数,以便对话框面板上的确定按钮将根据调用它的按钮运行正确的代码。
我目前的尝试是存储一个字符串,该字符串将包含当用户单击Dialog Panel上的 OK 按钮时应该运行的函数的名称。我正在尝试检索此字符串并将其转换为函数名称,到目前为止,我发现了许多对“反射”的引用,其中许多暗示这不是一个好主意。
在任何情况下,我都无法让任何示例代码工作,因为我不明白下面代码中的“obj”是什么,并且无法调用该方法:
method = obj.getClass().getMethod(myCallbackString);
我的问题是:
首先,我是否以正确的方式进行此操作?我对建议持开放态度,但请尽量保持简单,因为我真的才刚刚开始!
其次,上面显示的代码中的“obj”是什么?我真的很想知道,即使这不是我应该做的事情!
我的其他想法包括:我的Dialog Panel是否应该在它自己的类中,如果是,那么如何传递回调函数?
任何帮助或建议将不胜感激。
顺便说一句:回答“为什么不使用普通对话框?”这个问题。我只能说我目前正在做实验,我只是想看看我能不能做到这一点!
MVK