我想编写一个程序,可以在其中添加“插件”之类的内容。假设我在Project1
的地方有JFrame
,在Project2
的地方有JPanel
。
重点是,用户可以开发自己的程序(插件),而不是将其添加到主程序(Project1
)中。
所以...我将框架导出为可运行的JAR文件,并将导出面板导出为可运行的JAR文件(或仅作为JAR文件?)。
我要做的是在框架中显示面板。
我只是想做类似this或this的事情,但是仅在Java和面板中,我不需要运行任何.exe程序。 (它将在Linux而非Windows上运行。)
我的专业照片应该描述我想做什么:) image
有什么办法吗?
答案 0 :(得分:0)
对于插件部分,您可以查看我创建的this project,loadPlugin方法从jar文件加载插件。
对于JPanel部分,您只需要让插件采用某种方式(肯定是API)即可,使他们可以更改JFrame的显示面板(使用JFrame::setContentPane)。 希望对您有所帮助,如果需要的话,请询问我。
编辑:
作为示例,您可以从.jar获取JPanel并实例化它:
URLClassLoader classLoader = new URLClassLoader(new URL[]{file.toURI().toURL()}, Thread.currentThread().getContextClassLoader());
String packageName = "package.where.is.the.jpanel.to.load";
JPanel jpanel = (JPanel) Class.forName(packageName, true, classLoader).getConstructor().newInstance();