⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientmanager.java

📁 Vyger offers a D & D and Rogue-like environment in a graphical online roleplay game.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
      b_cancel.setFocusPainted(false);

      b_load = new JButton(im_loadup);
      b_load.setRolloverIcon(im_loaddo);
      b_load.setPressedIcon(im_loaddo);
      b_load.setDisabledIcon(im_loadun);
      b_load.setBorderPainted(false);
      b_load.setContentAreaFilled(false);
      b_load.setFocusPainted(false);

      b_help = new JButton(im_helpup);
      b_help.setRolloverIcon(im_helpdo);
      b_help.setPressedIcon(im_helpdo);
      b_help.setBorderPainted(false);
      b_help.setContentAreaFilled(false);
      b_help.setFocusPainted(false);

      b_newProfile = new JButton(im_newup);
      b_newProfile.setRolloverIcon(im_newdo);
      b_newProfile.setPressedIcon(im_newdo);
      b_newProfile.setDisabledIcon(im_newdo);
      b_newProfile.setBorderPainted(false);
      b_newProfile.setContentAreaFilled(false);
      b_newProfile.setFocusPainted(false);

      b_recoverProfile = new JButton(im_recoverup);
      b_recoverProfile.setRolloverIcon(im_recoverdo);
      b_recoverProfile.setPressedIcon(im_recoverdo);
      b_recoverProfile.setDisabledIcon(im_recoverun);
      b_recoverProfile.setBorderPainted(false);
      b_recoverProfile.setContentAreaFilled(false);
      b_recoverProfile.setFocusPainted(false);

      b_delProfile = new JButton(im_delup);
      b_delProfile.setRolloverIcon(im_deldo);
      b_delProfile.setPressedIcon(im_deldo);
      b_delProfile.setDisabledIcon(im_delun);
      b_delProfile.setBorderPainted(false);
      b_delProfile.setContentAreaFilled(false);
      b_delProfile.setFocusPainted(false);

      b_exitProfile = new JButton(im_exitup);
      b_exitProfile.setRolloverIcon(im_exitdo);
      b_exitProfile.setPressedIcon(im_exitdo);      
      b_exitProfile.setBorderPainted(false);
      b_exitProfile.setContentAreaFilled(false);
      b_exitProfile.setFocusPainted(false);

      // *** Left JPanel ***

      imgLabel1 = new JLabel(ClientDirector.getResourceManager().getImageIcon("welcome-title.jpg"));
      imgLabel1.setAlignmentX(Component.CENTER_ALIGNMENT);
      leftPanel.add(imgLabel1);

      imgLabel2 = new JLabel(ClientDirector.getResourceManager().getImageIcon("choose.gif"));
      imgLabel2.setAlignmentX(Component.CENTER_ALIGNMENT);
      leftPanel.add(imgLabel2);

      leftPanel.add(Box.createRigidArea(new Dimension(0,10)));

      // Creates a table of profiles
      ProfileConfigListTableModel profileConfigListTabModel = new ProfileConfigListTableModel(profileConfigList, serverConfigManager);
      profilesTable = new JTable(profileConfigListTabModel);
      profilesTable.setDefaultRenderer(Object.class, new ATableCellRenderer());
      profilesTable.setBackground(Color.white);
      profilesTable.setForeground(Color.black);
      profilesTable.setSelectionBackground(Color.lightGray);
      profilesTable.setSelectionForeground(Color.white);
      profilesTable.setRowHeight(24);
      profilesTable.getColumnModel().getColumn(2).setPreferredWidth(-1);

      // selection
      profilesTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
      ListSelectionModel rowProfilesSM = profilesTable.getSelectionModel();
      rowProfilesSM.addListSelectionListener(new ListSelectionListener()
      {
        public void valueChanged(ListSelectionEvent e)
        {
          //Ignore extra messages.
          if (e.getValueIsAdjusting()) return;
          ListSelectionModel lsm = (ListSelectionModel) e.getSource();
          if (lsm.isSelectionEmpty()) {
            //no rows are selected
          } else {
            int selectedRow = lsm.getMinSelectionIndex();
            currentProfileConfig = profileConfigList.getProfiles()[selectedRow];
            b_load.setEnabled(true);
            b_delProfile.setEnabled(true);
          }
        }
      });

      // show table
      scrollPane = new JScrollPane(profilesTable);
      profilesTable.setPreferredScrollableViewportSize(new Dimension(0, 170));
      scrollPane.getViewport().setBackground(Color.white);
      JScrollBar jsb_01 = scrollPane.getVerticalScrollBar();
      leftPanel.add(scrollPane);

      // *** Right Panel ***

      b_load.setEnabled(false);
      b_load.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
            start(ACCOUNT_LOGIN_SCREEN);
          }
        }
      );
      rightPanel.add(b_load);

      b_newProfile.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
            start(ACCOUNT_CREATION_SCREEN);
          }
        }
      );
      rightPanel.add(b_newProfile);

      rightPanel.add( new JLabel( ClientDirector.getResourceManager().getImageIcon("separator.gif") ) );  // SEPARATOR

      b_recoverProfile.setEnabled(true);
      b_recoverProfile.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
            start(RECOVER_ACCOUNT_SCREEN);
          }
        }
      );
      rightPanel.add(b_recoverProfile);

      b_delProfile.setEnabled(false);

      b_delProfile.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
            start(DELETE_ACCOUNT_SCREEN);
          }
        }
      );

      rightPanel.add(b_delProfile);

      rightPanel.add( new JLabel( ClientDirector.getResourceManager().getImageIcon("separator.gif") ) );  // SEPARATOR

      b_option.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
             new JConfigurationDlg( ClientManager.this );
          }
        }
      );
      rightPanel.add(b_option);


      b_help.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
             new JHTMLWindow( ClientManager.this, "Help",
                 ClientDirector.getResourceManager().getHelpDocsDir()+"index.html",
                 640, 340, false,
                 ClientDirector.getResourceManager() );
          }
        }
      );
      rightPanel.add(b_help);

      rightPanel.add( new JLabel( ClientDirector.getResourceManager().getImageIcon("separator.gif") ) );  // SEPARATOR

      b_about.addActionListener(new ActionListener() {
          public void actionPerformed (ActionEvent e) {
            try{
              new JAbout( ClientManager.this );
            }catch(RuntimeException ei ) {
              Debug.signal( Debug.ERROR, this, ei );
            }
          }
        }
      );
      rightPanel.add(b_about);

      b_exitProfile.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
             ClientDirector.getDataManager().exit();
          }
        }
      );
      rightPanel.add(b_exitProfile);
      
      // *** Adding the panels ***

      setLeftPanel(leftPanel);
      setRightPanel(rightPanel);
      showScreen();
      break;

    // ********************************
    // *** Connection to GameServer ***
    // ********************************

    case ACCOUNT_LOGIN_SCREEN:
      setTitle("Wotlas - Login...");

      // Create panels
      leftPanel = new JPanel();
      leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS));
      rightPanel = new JPanel();

      // Create buttons
      b_ok = new JButton(im_okup);
      b_ok.setRolloverIcon(im_okdo);
      b_ok.setPressedIcon(im_okdo);
      b_ok.setDisabledIcon(im_okun);
      b_ok.setBorderPainted(false);
      b_ok.setContentAreaFilled(false);
      b_ok.setFocusPainted(false);

      b_cancel = new JButton(im_cancelup);
      b_cancel.setRolloverIcon(im_canceldo);
      b_cancel.setPressedIcon(im_canceldo);
      b_cancel.setDisabledIcon(im_cancelun);
      b_cancel.setBorderPainted(false);
      b_cancel.setContentAreaFilled(false);
      b_cancel.setFocusPainted(false);

      // *** Left JPanel ***

      label1 = new ALabel("Welcome " + currentProfileConfig.getLogin() + ",");
      label1.setAlignmentX(Component.CENTER_ALIGNMENT);
      leftPanel.add(label1);
      label1.setFont(f.deriveFont(18f));

      leftPanel.add(Box.createRigidArea(new Dimension(0,10)));
      JPanel mainPanel_01 = new JPanel();
        mainPanel_01.setBackground(Color.white);

        JPanel formPanel_01_left = new JPanel(new GridLayout(2,1,5,5));
          formPanel_01_left.setBackground(Color.white);
          formPanel_01_left.add(new JLabel(ClientDirector.getResourceManager().getImageIcon("enter-password.gif")));
          formPanel_01_left.add(new JLabel(ClientDirector.getResourceManager().getImageIcon("your-key.gif")));
        mainPanel_01.add(formPanel_01_left);
        JPanel formPanel_01_right = new JPanel(new GridLayout(2,1,5,10));
          formPanel_01_right.setBackground(Color.white);
          pfield1 = new APasswordField(10);
          pfield1.setFont(f.deriveFont(18f));

          if( currentProfileConfig.getPassword()!=null )
              pfield1.setText(currentProfileConfig.getPassword());
          
          pfield1.addKeyListener(new KeyAdapter() {
            public void keyReleased(KeyEvent e) {
            if ( e.getKeyCode()==KeyEvent.VK_ENTER )
              b_ok.doClick();
            }
          });
          
          formPanel_01_right.add(pfield1);
          ALabel alabel = new ALabel(currentProfileConfig.getLogin()+"-"+currentProfileConfig.getKey());
          alabel.setFont(f.deriveFont(16f));
          formPanel_01_right.add(alabel);
        mainPanel_01.add(formPanel_01_right);
      leftPanel.add(mainPanel_01);

      // *** Right Panel ***

      b_ok.addActionListener(new ActionListener() {
        public void actionPerformed (ActionEvent e) {
          char charPasswd[] = pfield1.getPassword();
          if (charPasswd.length < 4) {
            JOptionPane.showMessageDialog( ClientManager.this, "Password must have at least 5 characters !", "New Password", JOptionPane.ERROR_MESSAGE);
          } else {
            String passwd = new String(charPasswd);

            ClientDirector.getDataManager().setCurrentProfileConfig(currentProfileConfig);

            currentServerConfig = serverConfigManager.getServerConfig(currentProfileConfig.getServerID());

            JGameConnectionDialog jgconnect = new JGameConnectionDialog( ClientManager.this,
                    currentServerConfig.getServerName(), currentServerConfig.getGameServerPort(),
                    currentServerConfig.getServerID(),
                    currentProfileConfig.getLogin(), passwd, currentProfileConfig.getLocalClientID(),
                    currentProfileConfig.getOriginalServerID(), ClientDirector.getDataManager());

            if ( jgconnect.hasSucceeded() ) {
              currentProfileConfig.setPassword(passwd);

              if(rememberPasswords)
                 profileConfigList.save();

              Debug.signal( Debug.NOTICE, null, "ClientManager connected to GameServer");
              start(DATAMANAGER_DISPLAY);
            } else {
              Debug.signal( Debug.ERROR, this, "ClientManager ejected from GameServer");
              start(MAIN_SCREEN);
            }
          }
        }
      }
      );
      rightPanel.add(b_ok);

      b_cancel.addActionListener(new ActionListener() {
        public void actionPerformed (ActionEvent e) {
            start(MAIN_SCREEN);
        }
      }
      );
      rightPanel.add(b_cancel);

      // *** Adding the panels ***
      setLeftPanel(leftPanel);
      setRightPanel(rightPanel);
      showScreen();

      if( automaticLogin && currentProfileConfig.getPassword()!=null ) {
      	 automaticLogin = false;  // works only once...
         b_ok.doClick();          // we launch the connection procedure
      }

      break;

    // ********************************
    // ***   To Delete An Account   ***
    // ********************************

    case DELETE_ACCOUNT_SCREEN:
      setTitle("Wotlas - Delete Account...");

      // Create panels
      leftPanel = new JPanel();
      leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS));
      rightPanel = new JPanel();

      // Create buttons
      b_delProfile = new JButton(im_delup);
      b_delProfile.setRolloverIcon(im_deldo);
      b_delProfile.setPressedIcon(im_deldo);
      b_delProfile.setDisabledIcon(im_delun);
      b_delProfile.setBorderPainted(false);
      b_delProfile.setContentAreaFilled(false);
      b_delProfile.setFocusPainted(false);

      b_cancel = new JButton(im_cancelup);
      b_cancel.setRolloverIcon(im_canceldo);
      b_cancel.setPressedIcon(im_canceldo);
      b_cancel.setDisabledIcon(im_cancelun);
      b_cancel.setBorderPainted(false);
      b_cancel.setContentAreaFilled(false);
      b_cancel.setFocusPainted(false);

      // *** Left JPanel ***

      label1 = new ALabel("Delete " + currentProfileConfig.getPlayerName() + " ?");
      label1.setAlignmentX(Component.CENTER_ALIGNMENT);
      leftPanel.add(label1);
      label1.setFont(f.deriveFont(18f));

      leftPanel.add(Box.createRigidArea(new Dimension(0,10)));

      JPanel mainPanel_02 = new JPanel();
        mainPanel_02.setBackground(Color.white);
        JPanel formPanel_02_left = new JPanel(new GridLayout(2,1,5,5));
          formPanel_02_left.setBackground(Color.white);
          formPanel_02_left.add(new JLabel(ClientDirector.getResourceManager().getImageIcon("enter-password.gif")));
          formPanel_02_left.add(new JLabel(ClientDirector.getResourceManager().getImageIcon("your-key.gif")));
        mainPanel_02.add(formPanel_02_left);
        JPanel formPanel_02_right = new JPanel(new GridLayout(2,1,5,10));
          formPanel_02_right.setBackground(Color.white);
          pfield1 = new APasswordField(10);
          pfield1.setFont(f.deriveFont(18f));
          
          pfield1.addKeyListener(new KeyAdapter() {
            public void keyReleased(KeyEvent e) {
            if ( e.getKeyCode()==KeyEvent.VK_ENTER )
              b_delProfile.doClick();
            }
          });

          if( currentProfileConfig.getPassword()!=null )
              pfield1.setText(currentProfileConfig.getPassword());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -