我在学oop Java
. 我先解释我的问题,代码如下。我有3个独立的文件(user.java、usergui.java和userstart.java)。
java的代码包含带有默认getter和setter的user类。usergui.java只存在于创建gui的项中。java的代码包含运行程序的main。
现在我尝试在 JList
在usergui.java中,我想在 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");
}
}
3条答案
按热度按时间zfycwa2u1#
简单的方法(这就足够了)是在构造时将“数据”传递给gui
那么在你的主要
对于更大更复杂的程序/应用程序,您应该考虑使用mvc作为一种方法,它允许您将ui与数据解耦。
uqjltbpv2#
首先,构造函数应该与类同名。像这样:
如果要将文本添加到
JTextBox
如果有1个文本框:如果您有2个:
我还没测试过,但应该能用。
suzh9iv83#
例如,在user.java类中,可以创建一个静态verctor,其中创建了所有用户(将每个用户添加到构造函数中):
然后您可以访问任何类中创建的任何用户,如下所示:
根据你的问题,你应该注意索引。第一个创建的用户将是0:users.get(0),第二个将是1,依此类推
例如,如果要显示所有用户,则在如下循环中: