gpt4 book ai didi

java - JCombobox1与json数据转换静态变量

转载 作者:行者123 更新时间:2023-12-02 02:49:07 25 4
gpt4 key购买 nike

我想从 json 数据添加数据 jcombobox1。但是它给出了两个错误;

无法从静态上下文错误中引用非静态变量 JCombobox1

无法从静态上下文错误中引用非静态方法 getName()

如何转换静态变量组合框和 json 变量

我的java文件;

http://paste.ubuntu.com/24618080/

private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1)
buffer.append(chars, 0, read);

return buffer.toString();
} finally {
if (reader != null)
reader.close();
}
}
public static class MySQLEntry {
public String id;
public static String ad;
public String latitude;
public String longitude;
public String speed;
public String hour;
public String day;
public String adres;
public String resimyol;

public String getId() { return id; }
public String getName() { return ad; }
public String getlat() { return latitude; }
public String getlon() { return longitude; }
public String getspeed() { return speed; }
public String gethour() { return hour; }
public String getday() { return day; }
public String getadres() { return adres; }
public String getresim() { return resimyol; }

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new KonumGoster().setVisible(true);

String json = null;
try {
json = readUrl("http://url.esy.es/"
+ "json.php");
} catch (Exception ex) {

Logger.getLogger(KonumGoster.class.getName()).log(Level.SEVERE, null, ex);
}

Gson gson = new Gson();

MySQLEntry[] array = gson.fromJson(json, MySQLEntry[].class);
JComboBox jComboBox1 = new JComboBox(array);
for (MySQLEntry obj : array) {
//MySQLEntry x =new MySQLEntry(obj.getName());


jComboBox1.addItem(obj.getName());

System.out.println("ID: " +obj.getId());
System.out.println("Ad: " +obj.getName());
System.out.println("Latitude: " +obj.getlat());
System.out.println("Longitude: " +obj.getlon());
System.out.println("Speed: " +obj.getspeed());
System.out.println("Saat: " +obj.gethour());
System.out.println("Tarih: " +obj.getday());
System.out.println("Açık Adres: " +obj.getadres());
System.out.println("Harita Üzerinde: " +obj.getresim());
}

最佳答案

错误 1:无法从静态上下文错误中引用非静态变量 JCombobox1

这意味着 JComboBox 是非静态的,但您的 MySQLEntry 是静态的,这就是为什么 JComboBox 无法使用静态类或方法填充的原因。

像这样更改你的类:

public final class MySQLEntry

错误 2:无法从静态上下文错误中引用非静态方法 getName()

与第一个错误相同...

您的名称 getter 是非静态的,但变量是静态的,您需要将两者都设置为静态或都设置为非静态,例如:

private static String ad;
public static String getAd(){return this.ad;}

或者

private String ad;
public String getAd(){return this.ad;}

关于java - JCombobox1与json数据转换静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44098961/

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