我的GUI由Netbeans Manager制作。我试图在我的Frame中修改具有JTabbedPane的JComponents:
当用户登录时。我需要使用UserData在JTextFields中设置一些数据,并根据其配置文件启用一些JTabbedPane选项卡。
我在loginButton中使用ActionEvent
来登录我的应用程序:
private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {
//I have a DAO that Return a Object with the DB retrieved data
UserDAOConcrete userDAO = UserDAOFactory.getUserDAO("user");
Users userData = userDAO.login(Integer.parseInt(loginUserId.getText()), String.valueOf(userLoginPassword.getPassword()));
//And then passing JComponents/param to a method to "configure" my JFrame
int getItemsInCostCenter = InventoryDAO.getInventory(userData.getUserCencos());
//Class: GUI to deal with JComponents behaviour
GUI.configGUIByUser(tranferTabGroup, userData, getItemsInCostCenter);
}
方法:
public static void configGUIByUser(JTabbedPane tabs, Users userData, int itemsInCostCenter) throws NullPointerException {
if (itemsInCostCenter == 0) {
tabs.setEnabledAt(1, false);
tabs.setEnabledAt(0, true);
tabs.setSelectedIndex(0);
JOptionPane.showMessageDialog(null, "No se encontraron Elementos en Cencos: " + userData.getUserCencos(), cf.WINDOW_TITLE, JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Bienvenido: " + userData.getUserName(), cf.WINDOW_TITLE, JOptionPane.INFORMATION_MESSAGE);
tabs.setEnabledAt(0, false);
JOptionPane.showMessageDialog(null, "Cargando Inventarios de Centro de Costo: " + userData.getUserCencos(), cf.WINDOW_TITLE, JOptionPane.INFORMATION_MESSAGE);
tabs.setSelectedIndex(0);
}
}
所以我的代码按预期工作,但我不知道我是否做得很好。我有两个问题: 我打破了一些编程实践? 有没有办法访问我的JFrame的JComponents?我尝试了一些代码here但是,我仍然无法从我的GUI类访问JFrame组件。
提前感谢您的帮助。