将JComponents传递给方法以修改其在JFrame中的行为是一个很好的做法吗?

时间:2017-01-19 17:46:27

标签: java swing netbeans

我的GUI由Netbeans Manager制作。我试图在我的Frame中修改具有JTabbedPane的JComponents:

System

当用户登录时。我需要使用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组件。

提前感谢您的帮助。

0 个答案:

没有答案