gpt4 book ai didi

java - 如何使用在其他ActionListener事件中声明的变量

转载 作者:行者123 更新时间:2023-12-03 09:10:29 24 4
gpt4 key购买 nike

我在ActionListener事件中的变量有问题。我正在编写一个程序,该程序通过使用用户定义的密码创建和加密/解密包含文件中文本的格式化字符串来加密和解密文件,然后将其写入文件。我的问题发生在我的ActionListeners中。这是我的代码:

private void buttonEncryptActionPerformed(java.awt.event.ActionEvent evt) {                                              
int retVal = selectFile.showOpenDialog(null);
if (retVal == selectFile.APPROVE_OPTION) {
java.io.File theFile = selectFile.getSelectedFile();
dialogEncryptPassword.setVisible(true);
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(theFile));
} catch (FileNotFoundException ex) {
Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex);
}
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append("\n");
line = br.readLine();
}
String everything = sb.toString();
} catch (IOException ex) {
Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}

private void buttonOKEncryptActionPerformed(java.awt.event.ActionEvent evt) {
String password = passwordEncrypt.getText();
try {
DESKeySpec key = new DESKeySpec(password.getBytes());
} catch (InvalidKeyException ex) {
Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex);
}
try {
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(MainUI.class.getName()).log(Level.SEVERE, null, ex);
}
CryptString crypt = new CryptString(KeyFactory.generateSecret(key));
String encryptedString = crypt.encryptBase64(everything);
dialogEncryptPassword.dispose();
}

我在两行显示“找不到符号”的地方说:
CryptString crypt = new CryptString(KeyFactory.generateSecret(key));
String encryptedString = crypt.encryptBase64(everything);

这是因为字符串“everything”是在上一个ActionListener事件中定义的,而我不知道如何访问在其他事件中定义的变量。我不知道为什么找不到符号“键”,因为它是在同一事件中声明的。我的某些代码可能不正确,因为我的IDE使我使用try/catch子句重新格式化了代码。任何帮助将非常感激。

提前致谢,
圣地亚哥

最佳答案

只需将"everything"声明为该类中该类的全局变量,所以不要在方法内部声明变量"everything"

就这样吧

public class yourclassname
{
String everything="";

private void buttonEncryptActionPerformed(java.awt.event.ActionEvent evt) {
//and do you stuff here
}

private void buttonOKEncryptActionPerformed(java.awt.event.ActionEvent evt) {
//and do you stuff here
}
}

关于java - 如何使用在其他ActionListener事件中声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com