私のアイデアは、Javaスイングでアプリケーションを作ることです。これには、ログインウィンドウがあり、次に企業選択ツールが含まれています。しかし、私はjsonのURLから会社のリストとIDをインポートする必要がありますが、これはコンストラクタ内の配列をJList
にプッシュするにはどうすればいいですか?arraylistまたは配列をコンストラクタのJListに置く方法は?
これは私のメインの方法
import java.awt.EventQueue;
public class Main {
public static void main(String[] args) {
LoginWindow loginWindow = new LoginWindow();
loginWindow.setVisible(true);
loginWindow.setSize(500, 400);
//loginWindow.setDefaultCloseOperation(Exit);
}
}
ここに私のログインウィンドウがありますです。
import java.awt.*;
import javax.swing.*;
public class LoginWindow extends JFrame {
private JLabel item1;
private JLabel item2;
private JTextField login;
private JPasswordField password;
private JButton loginButton;
private JPanel loginPanel;
GridBagConstraints gbc = new GridBagConstraints();
public static void main(String[] args) {
}
LoginWindow(){
super("MyApp");
setLayout(new GridBagLayout());
gbc.insets = new Insets(5, 5, 5, 5);
item1 = new JLabel("Login");
gbc.gridx = 0;
gbc.gridy = 1;
add(item1, gbc);
item2 = new JLabel("Password");
gbc.gridx = 0;
gbc.gridy = 2;
add(item2, gbc);
login = new JTextField(15);
gbc.gridx = 2;
gbc.gridy = 1;
add(login, gbc);
password = new JPasswordField(15);
gbc.gridx = 2;
gbc.gridy = 2;
add(password, gbc);
loginButton = new JButton("Login");
gbc.gridx = 2;
gbc.gridy = 3;
add(loginButton, gbc);
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if("admin".equals(password.getText()) &&
"admin".equals(login.getText())){
dispose();
CompanySelectionWindow frame = new CompanySelectionWindow();
frame.setVisible(true);
frame.setSize(500, 300);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
else{
JOptionPane.showMessageDialog(null, "Wrong password or login");
}
}});
}
}
、ここではCompanySelectionWindow
import javax.swing.*;
import org.json.*;
import java.awt.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.util.ArrayList;
public class CompanySelectionWindow extends JFrame {
private JLabel label;
private JList list;
//private JList<JSONArray> list = new JList<>();
DefaultListModel<companyInfo> model = new DefaultListModel<>();
GridBagConstraints gbc = new GridBagConstraints();
public CompanySelectionWindow() {
super("Company Selection Window");
//model.addElement(element);
setLayout(new GridBagLayout());
gbc.insets = new Insets(5, 5, 5, 5);
label = new JLabel("Choose company:");
gbc.gridx = 3;
gbc.gridy = 3;
add(label);
**list = new JList(what and how put something here?);**
}
public static void main(String[] args) {
String jsonString = callURL("xxx");
System.out.println("\n\njsonString: " + jsonString);
ArrayList<JSONObject> array = new ArrayList<>();
//String str = "{id:\"123\",name:\"myName\"} {id:\"456\",name:\"yetanotherName\"}{id:\"456\",name:\"anotherName\"}";
String[] strs = jsonString.split("(?<=\\})(?=\\{)");
for (String s : strs) {
System.out.println(s);
}
try {
JSONArray jsonArray = new JSONArray(jsonString);
int count = jsonArray.length(); // get totalCount of all jsonObjects
for(int i=0 ; i< count; i++){ // iterate through jsonArray
JSONObject jsonObject = jsonArray.getJSONObject(i); // get jsonObject @ i position
array.add(i, jsonObject);
System.out.println("jsonObject " + i + ": " + jsonObject);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public String[] pullArray(String[] a){
return a;
}
public static String callURL(String myURL) {
System.out.println("Requested URL:" + myURL);
StringBuilder sb = new StringBuilder();
URLConnection urlConn = null;
InputStreamReader in = null;
try {
URL url = new URL(myURL);
urlConn = url.openConnection();
if (urlConn != null && urlConn.getInputStream() != null) {
in = new InputStreamReader(urlConn.getInputStream(),
Charset.defaultCharset());
BufferedReader bufferedReader = new BufferedReader(in);
if (bufferedReader != null) {
int cp;
while ((cp = bufferedReader.read()) != -1) {
sb.append((char) cp);
}
bufferedReader.close();
}
}
in.close();
} catch (Exception e) {
throw new RuntimeException("Exception while calling URL:"+ myURL, e);
}
return sb.toString();
}
だ私は(私はそれはそれを行うための正しい方法だろうと思います原因)JSONarray
のうちArrayList
、さらには通常の配列を作成し、JList
にプッシュしようとしました。私はここのすべてがちょっと面倒だと知っています。私はいくつかのチュートリアルを見て、ここでいくつかの記事を読んだが、私はそれをすることはできません。私の悪い英語と申し訳ありません私の質問がばかだと申し訳ありません:)。おかげ
私はあなたがばかだとは思わない。 –