protected void loadKey()
    {
        File[] fileNames;
        FileDialog dlgLoad = new FileDialog( this, "Load keystore...", FileDialog.LOAD );
        dlgLoad.setFile( "*.ks" );
        String psw = this.edPswLoad.getText().trim();
        
        try {
            this.pnlData.setVisible( false );
            this.pnlPswLoad.setVisible( false );
            this.lblStatus.setText( "Choose file name..." );
            this.pack();
            dlgLoad.setVisible( true );
            fileNames = dlgLoad.getFiles();

            if ( fileNames.length > 0 ) {
                File file = fileNames[ 0 ].getCanonicalFile();

                this.lblStatus.setText( "Loading keystore..." );
                this.keyInfo = new KeyManager( file ).load( psw );
                
                if ( this.keyInfo != null ) {
                    this.writeKeyInfoToData();
                    this.onGenerate();
                } else {
                    this.lblStatus.setText( "Error loading: empty keystore?" );
                }
            } else {
                this.lblStatus.setText( "Ready" );
            }
        }
        catch(IOException
            | KeyStoreException
            | NoSuchAlgorithmException
            | RuntimeException
            | CertificateException ex)
        {
            this.lblStatus.setText( "Error: " + ex.getLocalizedMessage() );
        }
        finally {
            this.requestFocusInWindow();
        }
        
        return;
    }