2014-02-09 50 views
0

我試圖從用戶在JFrame的textarea中接受輸入,然後在另一個類中使用它,但它保持爲空。如果我硬編碼的變量encryptString它會顯示而不是當我將它保存在加密的動作監聽獲取變量以新方法顯示Java

JFrame中加密文件

public class Encrypt extends JFrame { 
public String encryptString ; 
/** 
* Creates new form NewJFrame1 
*/ 
public Encrypt() { 
    initComponents(); 
} 


    /** 
    * Run on encryption button press 
    */ 
private void encryptionButtonActionPerformed(java.awt.event.ActionEvent evt) {             
    //windowClosed(); 
    run(); 
encryptString = textForEncryption.getText(); 

textForEncryption.setText(encryptString +"hey"); 


    Display display = new Display(); 
    display.setVisible(true); 

    //close(); 
}             

的AES文件我試圖訪問它英寸

public class AES { 

public static void run(){ 
    Encrypt e = new Encrypt(); 
    String strDataToEncrypt = e.encryptString; 
      String strCipherText; 
    String strDecryptedText; 
      System.out.println(strDataToEncrypt); 
      System.out.println(e.encryptString); 

    } 
+1

請看看http://sscce.org/到更快得到更好的答案!有這麼多不相關的代碼在這裏.. –

+0

感謝您的指針 – m4773rz

回答

2

你的代碼反過來用你的AES方法創建一個加密GUI,並立即提取一個公共的(可能)字符串從用戶有機會做任何事情之前的GUI。瞭解AES正在創建的GUI可能與向用戶顯示的GUI不同。不,我認爲GUI或更好的控制(它的ActionListeners)應該有一個非GUI加密對象,它從ActionListener的actionPerformed方法中獲取相關的字符串,然後讓加密類執行它的操作。

這樣的事情,在半僞代碼:

GUI類

public class Gui { 

    public Gui() { 
    myButton.addActionListener(new ButtonListener(this)); 
    } 
} 

Control類

public class ButtonListener implements ActionListener { 
    private Gui gui; 

    public ButtonListener(Gui gui) 
    this.gui = gui; 
    } 

    public void actionPerformed(ActionEvent evt) { 
    String preEncryptString = gui.getPreEncryptString(); // get from text component 
    NonGuiEncryption encryption = new NonGuiEncryption(preEncryptString); 

    // the code below might need to be done in a background thread 
    // depending on how long it takes to run 
    String encryptString = encryption.doEncryption(); 

    // the code below must be run on the EDT, but after the code above completes 
    gui.putEncriptString(encryyptString); 
    } 
} 
+0

@ m4773rz:如果您可以提出具體問題,也許我可以提供幫助。 –

+0

所以你說我沒有辦法用我當前的Jframe(加密)和AES類來做到這一點?我必須改變他們? – m4773rz

+0

@ m4773rz:是的,我會改變它們。但是對於更詳細的分析,請創建併發布[minimal,compiled,example program或mcve](http://stackoverflow.com/help/mcve)。 –