📄 clientmanager.java
字号:
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 + -