0

我正在开发一个应用程序,其中第一个窗口是

在此处输入图像描述

单击登录后,将出现登录窗口,并且在正确的凭据被引导后选择时间戳和数据集 ID 窗口。这就是我访问 API 密钥 ( Login.java)值的方式

String value1=text1.getText();
String value2=text2.getText();
URL url = new URL("http://website-link/method/user.json?userName="+value1+"&password="+value2);

HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
BufferedReader in = new BufferedReader(new InputStreamReader(httpCon.getInputStream()));
String inputLine;
StringBuilder sb = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
  sb.append(inputLine);
}

String Result;
Result=sb.toString();
String jsonSource = Result;
JSONArray array;
try {
  array = new JSONArray(jsonSource);
  for (int i = 0; i < array.length(); i++) {
    JSONObject firstObject = (JSONObject) array.get(i);
    System.out.println("APIkey is  " + firstObject.getString("apiKey"));
    APIkey=firstObject.getString("apiKey");
  }

我希望在成功登录后,用户可以随时选择数据集和时间戳。那就是Login.java将值传递给Algorithm.java(用于选择数据集和时间戳窗口)

if (httpCon.getResponseCode()==200) {
  Algorithm frame=new Algorithm(APIkey);
  frame.setSize(450,200);
  frame.setVisible(true);
  dispose();
  JLabel label = new JLabel("Welcome:"+value1);
}

现在此 API 密钥用于Algorithm.java设置连接并根据输入的时间戳和数据集 ID 选择一些特定节点。

现在我希望登录后我可以随时单击此窗口中显示的第二个按钮并选择时间戳和数据集 ID。但在那种情况下,我没有 API 密钥的值,因为我在Main.java(负责上述窗口)中使用它。并且Main.javaAPI key 的值为 null。我不希望用户一次又一次地输入登录用户名和密码。

if (e.getSource() == myFirstButton) {
  Login frame1=new Login();
  frame1.setSize(450,200);
  frame1.setVisible(true);
}

if (e.getSource() == mySecondButton) {
  Algorithm frame=new Algorithm(APIkey);
  frame.setSize(450,200);
  frame.setVisible(true);
}

现在,一旦用户在登录窗口中输入正确的访问凭据并且可以在任何地方使用它,我如何才能将 API 密钥的值存储在所有文件中。 每个文件:Log-in.java、Algorithm.java、Main.java 都在扩展 jframe。并且 Main.java 具有我在 Netbeans 7.1.2 中工作的 main() 函数。我在 Swing Java 中对此进行编码。我是 Java 新手。

4

1 回答 1

0

最快的方法是在用户登录后输入一个全局变量APIKeyMain.java设置它的值。如果你这样做,我还会添加一个注销按钮来取消设置这个变量。

于 2012-07-10T07:28:19.233 回答