Коротко и сладко : я хотел бы иметь возможность запускать другой файл .java одним нажатием кнопки в графическом интерфейсе в Netbeans для Mac.
Еще немного объяснений :
Я воссоздаю проект, который создал, когда начинал с Java, чтобы сделать его чище. Я сделал много улучшений, хотя одна проблема, с которой я столкнулся, заключалась в том, что у меня было слишком много панелей в одном JFrame, и у меня возникало большое количество видимости настройки кода при каждой смене панели.
Например:
jPanel1.setVisible(false);
jPanel2.setVisible(false);
jPanel3.setVisible(true);
Я знаю, что мог бы просто с этим смириться, но я хотел бы посмотреть, есть ли способ разделить код / панели немного больше, как описано ниже.
Моей первой мыслью было иметь несколько файлов; по одному на каждую страницу. Как и в HTML.
Поэтому у меня есть LoginPage.java и GuestMainPage.java.
Если это возможно, я хотел бы иметь возможность связать их, например: закрыть LoginPage.java и открыть GuestMainPage.java , по нажатию кнопки.
По сути, я хочу иметь возможность компилировать или открывать другой файл .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. (А потом у меня есть возможность делать что угодно, я просто не могу найти, как это сделать).
Я просмотрел множество тем по стеку и попытался найти ответ, а также много погуглил, но не могу найти ту, которая действительно отвечает на мой вопрос. Однако, если на самом деле не существует способа сделать это, я полностью удовлетворен ответом, подтверждающим это, и если это так, мне просто придется справиться с несколькими панелями.
Спасибо
-Ewan