我有以下代码,我做了一个简单的GUI。我希望Button2导航到类' Project2',它应该启动另一段代码。需要注意的是,在目前的状态下,' Project2'没有GUI,但我打算很快添加一个。无论如何,这个代码跳转'我在添加时使用了String[] args = {};
Project2.main(args);
IDE没有工作,因为必须抓住或抛出IOException。我知道这是如何工作的,虽然我不确定如何在程序中实现它。
提前致谢!
答案 0 :(得分:1)
您可以尝试为程序使用动态类加载。您可以在下面找到lambda,它从main
类调用com.stackoverflow.ExternalCaller
方法。
如果您不喜欢使用lambda,可以创建一个简单的匿名类。
button.addActionListener(s -> {
try {
Class<?> externalCaller = Class.forName("com.stackoverflow.ExternalCaller");
Method main = externalCaller.getDeclaredMethod("main", new Class[]{String[].class});
main.invoke(null, new Object[]{new String[0]});
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
});
ExternalCaller
类看起来像这样:
package com.stackoverflow;
public class ExternalCaller {
public static void main(String args[]) {
System.out.println("Hello World");
}
}
结果一旦你点击按钮,你将在控制台中输出Hello World
。
如果您想使用外部罐子等,请查看Process
课程。快速举例:
Process proc = Runtime.getRuntime().exec("java -jar External.jar");
甚至更多fork/exec
。您可以阅读From Runtime.exec() to ProcessBuilder了解更多详情。
希望这会有所帮助。祝你好运。
答案 1 :(得分:0)
在大多数IDE中,右键单击Design(GUI)窗格中的Button2时,您可以浏览:
活动 - &gt;行动 - &gt;的actionPerformed()。
在选定的方法中编写此代码以切换类:
class_name