使用JButton跳转到另一个类

时间:2017-08-07 08:22:56

标签: java class user-interface jbutton ioexception

我有以下代码,我做了一个简单的GUI。我希望Button2导航到类' Project2',它应该启动另一段代码。需要注意的是,在目前的状态下,' Project2'没有GUI,但我打算很快添加一个。无论如何,这个代码跳转'我在添加时使用了String[] args = {}; Project2.main(args);  IDE没有工作,因为必须抓住或抛出IOException。我知道这是如何工作的,虽然我不确定如何在程序中实现它。

提前致谢!

2 个答案:

答案 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