java中的数组问题
你好 我正在制作一个程序,通过textfield0输入用户名来跟踪登录用户的数量。我刚接触java时遇到了一个障碍,我仍然不明白一些事情,我想知道如何实时向数组用户添加名称,并让数组计数,然后在textfield1中显示 先谢谢你java中的数组问题,java,arrays,swing,Java,Arrays,Swing,你好 我正在制作一个程序,通过textfield0输入用户名来跟踪登录用户的数量。我刚接触java时遇到了一个障碍,我仍然不明白一些事情,我想知道如何实时向数组用户添加名称,并让数组计数,然后在textfield1中显示 先谢谢你 public class UserTracking { public static void main(String[] args){ final Kong f = new Kong(); f.pack();
public class UserTracking {
public static void main(String[] args){
final Kong f = new Kong();
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(200,110);
f.setVisible(true);
}
}
class Kong extends JFrame implements ActionListener
{
JTextField textfield0 = new JTextField();
JTextField textfield1 = new JTextField();
JLabel label0 = new JLabel("User");
JLabel label1 = new JLabel("Number of Users:");
JButton btnon = new JButton("Log on");
JButton btnoff = new JButton("Log off");
String User[] ={};
public Kong()
{
super("Shazam");
JPanel panel1 = new JPanel(new BorderLayout());
panel1.add(textfield0,BorderLayout.CENTER);
panel1.add(label0,BorderLayout.WEST);
JPanel panel2 = new JPanel(new BorderLayout(10,10));
panel2.add(btnon,BorderLayout.WEST);
panel2.add(btnoff,BorderLayout.EAST);
JPanel panel3 = new JPanel(new BorderLayout());
panel3.add(textfield1,BorderLayout.CENTER);
panel3.add(label1,BorderLayout.WEST);
JPanel frame = new JPanel(new BorderLayout(5,5));
frame.add(panel1,BorderLayout.NORTH);
frame.add(panel2,BorderLayout.EAST);
frame.add(panel3,BorderLayout.SOUTH);
setContentPane(frame);
}
public void actionPerformed(ActionEvent e)
{
}
}
使用A.
< P>不需要一个数组,而是一个更灵活的数据类型(可以在大小上),比如一些列表实现:ARARYLIST实际上是由一个数组支持的,但是你不需要管理(重新)分配你自己。 < P>如果你有C++的经验,那么把java数组看作C++数组,一旦定义了它们的大小,就这样。如果希望增加容量,则需要重新创建阵列,并在其中添加旧阵列的内容。基本上这就是vector所做的 在Java中,如果想要一个可扩展的数组,基本上需要一个列表对象。我强烈建议您使用ArrayList,它本质上相当于Java中的vector,允许您添加任意多的对象,而不必担心其容量如果您需要数组,可以使用toArray()方法对其进行转换(不过根据我的经验,ArrayList可以满足您的所有要求)。在首次初始化之后,java中数组的大小无法更改 如果需要动态大小的数据容器,可以使用接口的任何实现。例如,ArrayList:
ArrayList<String> user = new ArrayList<String>();
user.add(username);
您还缺少到ActionListener的链接按钮。完成后,您可以使用ArrayList在用户登录时将其添加到列表中,并在用户注销时将其从列表中删除
private ArrayList<String> loggedOnUsers = new ArrayList<String>();
使用ArrayList比使用字符串数组更容易。像这样的
ArrayList<String> user = new ArrayList<String>();
actionPerformed方法应该
- 向用户数组中添加字符串(应命名为
)users
- 询问数组的新长度
- 更改计数文本字段中的值(
,它确实有一个坏名称)textfield1
java.util.ArrayList
存在的原因:它是一个行为类似于动态长度数组的类。通过阅读了解如何使用它
ArrayList<String> user = new ArrayList<String>();
user.add(textField1.getText());