短而甜:我希望能够通过点击Netbeans for Mac中GUI的按钮来运行另一个.java文件。
多一点解释: 我正在重新创建一个我在java开始时创建的项目,以使其更清晰。我已经做了很多改进,虽然我遇到的一个问题是我在一个JFrame中有太多的面板,每当我更换面板时,我最终都会有大量的代码设置可见性。
例如:
jPanel1.setVisible(false);
jPanel2.setVisible(false);
jPanel3.setVisible(true);
我知道我可以忍受它,但我想看看是否有办法将代码/面板分开一点,如下所述。 我的第一个想法是拥有多个文件;每页一个。类似于你在html中的表现。
因此,我有LoginPage.java和GuestMainPage.java。 如果有可能,我希望能够链接它们,例如: 关闭LoginPage.java 和 打开GuestMainPage.java ,点击按钮。
基本上,当我单击GUI上的按钮时,我希望能够将编译或打开另一个.java文件。 (如果有帮助,文件将在同一个项目中。)
示例 如果有办法打开另一个文件。可能通过访问终端命令?
public class LoginPage extends javax.swing.JFrame {
//Excluded a bunch of generated code from Netbeans
private void Login(java.awt.event.MouseEvent evt) {
//Code executed on Mouse Click of a Button labeled Login.
if(username.equalsIgnoreCase("guest")){
//A bit of pseudocode
open(GuestMainPage.java);
close(LoginPage.java);
}
if(username.equalsIgnoreCase("admin")){
open(AdminMainPage.java);
close(LoginPage.java);
}
}
}
从研究和经验来看,我知道您可以访问其他文件或同一项目中的其他类 - 因此使用对象等 - 但我不知道您是否可以物理运行其他文件。我能够通过java访问终端的可能性。 (然后有能力做任何事情,我也找不到怎么做。)
我已经查看了很多stackoverflow主题,试图找到答案,以及大量的谷歌搜索,但我找不到真正回答我的问题。但是,如果真的没有办法做到这一点,那么我很满意答案确认,如果是这样的话,我将只需要处理多个小组。
谢谢
-Ewan
答案 0 :(得分:4)
不,你没有“打开”其他类似的文件,也不想。而是将所有Java文件编译为类文件并使用其他类。您可以使用自定义类加载器在命令上加载类,但我真诚地怀疑您的应用程序确实需要它。相反,它只需要一些MVC(模型 - 视图 - 控制器)结构(正如ilea - 1+所指出的那样)和预见。
要考虑的一个不错的解决方案是使用CardLayout,因为这可以极大地简化更改GUI“视图”或顶级容器(如applet或JFrame)中显示的组件。您可以在这里阅读如何使用这些人:How to use CardLayout
答案 1 :(得分:2)
您应该尝试实现MVC模式。看一下spring:http://www.springsource.org/
答案 2 :(得分:0)
我看到你会像我一样做。请从小开始。假设我有一个“.java”文件,我想用JFRAME按钮运行它,所以我可以将这个“.java”文件创建到JAR文件中,然后使用JBUTTON我可以使用此代码运行该JAR文件
try {
Desktop.getDesktop().open(new File("Path of the *.jar File"));
} catch(IOException ex) {
System.out.println(ex.getMessage());
}
试试这个。