gpt4 book ai didi

java - 在 GUI 中打开另一个 .java 文件

转载 作者:行者123 更新时间:2023-12-01 16:37:00 25 4
gpt4 key购买 nike

简短而甜蜜:我希望能够通过单击 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 主题来尝试找到答案,也进行了大量的谷歌搜索,但我找不到真正能回答我的问题的主题。但是,如果确实没有办法做到这一点,那么我对确认这一点的答案非常满意,如果是这样的话,我将只需要处理多个面板。

谢谢

-伊万

最佳答案

不,您不会也不想那样“打开”其他文件。相反,您将所有 Java 文件编译为类文件并使用其他类。您可以使用自定义类加载器按命令加载类,但我真诚地怀疑您的应用程序是否真的需要它。相反,它只需要一些 MVC(模型- View - Controller )结构(正如 ilea 所指出的 - 1+)和深思熟虑。

一个值得考虑的不错的解决方案是使用 CardLayout,因为这可以极大地简化更改 GUI“ View ”或顶级容器(例如小程序或 JFrame)中显示的组件。您可以在这里阅读如何使用这些工具:How to use CardLayout

关于java - 在 GUI 中打开另一个 .java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com