gpt4 book ai didi

java - 当实例在另一个文件中声明时访问 GUI 文件中的实例

转载 作者:行者123 更新时间:2023-11-30 04:21:25 28 4
gpt4 key购买 nike

我正在学习 Java 中的 OOP。我先解释一下我的问题,代码如下。我有 3 个单独的文件(User.java、UserGUI.java 和 UserStart.java)。

User.java 的代码包含带有默认 getter 和 setter 的 User 类。UserGUI.java 仅存在于创建 GUI 的项目之外。 UserStart.java 包含包含运行程序的 main 代码。

现在我尝试在 UserGUI.java 的 JList 中选择一个 UserID,并且我想在 下面的 JTextField 中显示姓氏和姓名JList.

用户实例是在 UserStart.java 中创建的,我很困惑如何在 UserGUI.java 中访问它们...

有人愿意帮我解决这个问题吗?预先感谢您!

下面是User.java的类:

public class User {

private String userId;
private String surname;
private String name;

public User(String userId, String surname, String name) {
this.userId = userId;
this.surname = surname;
this.name = name;
}

public String getuserId() {
return userId;
}

public void setuserId(String userId) {
this.userId = userId;
}

public String getsurname() {
return surname;
}

public void setsurname(String surname) {
this.surname = surname;
}

public String getname() {
return name;
}

public void setname(String name) {
this.name = name;
}
}

下面是来自 userGUI.java 的一段代码:

final JList<?> userList= new JList<Object>(addresses);
userList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(!e.getValueIsAdjusting()) {
String userId = (String) userList.getSelectedValue();
System.out.println(userId);
}
}
});

JTextField userText = new JTextField(10);
userText.setEditable(false);

下面是文件 UserStart.java:

public class UserStart {
public static void main(String[] args) {
String userId, surname, name;
String[] userIds = {"a206", "a207", "a208", "a209"};

User u1 = new User(userIds[0], "a", "w");
User u2 = new User(userIds[1], "b", "x");
User u3 = new User(userIds[2], "c", "y");
User u4 = new User(userIds[3], "d", "z");
}
}

最佳答案

简单的方法(就足够了)是在构建时将“数据”传递给 GUI

class UserGui
{
private User[] user;

public UserGui(User[] users)
{
this.user = user;

initializeComponents();
}

// ...
}

然后在你的主目录

public static void main(String[] args)
{
User[] user = new User[10];

// setup user array ...

UserGui gui = new UserGui(user);
}

对于更大更复杂的程序/应用程序,您应该考虑使用 MVC作为一种允许您将 UI 与数据分离的方法。

关于java - 当实例在另一个文件中声明时访问 GUI 文件中的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950970/

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