循环多个JTextFields的Java getText

循环多个JTextFields的Java getText,java,for-loop,jtextfield,user-input,getter,Java,For Loop,Jtextfield,User Input,Getter,我的第一个问题。已经得到了很多帮助,但现在我不知道怎么做 我的代码: 我希望有8个jlabel,下面有8个JTextFields供用户输入。 然后获取文本字段的文本。 现在我只从1个文本字段中获得1个文本。当然,我只添加了1个字段 当我把JTextField放在for循环下时,我得到了我想要的东西,但是如何从所有JTextField中获得文本呢?玩家名称在getter中是未知的 谢谢您的帮助。您需要将向量或JTextField的数组声明为实例变量(而不仅仅是一个,如您所注释),并在循环时填充它

我的第一个问题。已经得到了很多帮助,但现在我不知道怎么做

我的代码:

我希望有8个jlabel,下面有8个JTextFields供用户输入。 然后获取文本字段的文本。 现在我只从1个文本字段中获得1个文本。当然,我只添加了1个字段

当我把JTextField放在for循环下时,我得到了我想要的东西,但是如何从所有JTextField中获得文本呢?玩家名称在getter中是未知的


谢谢您的帮助。

您需要将
向量
JTextField
的数组声明为实例变量(而不仅仅是一个,如您所注释),并在循环时填充它。然后您可以随机(任意)访问任何文本值。方便的是,索引
i
已经存在,您可以将其索引到数组中

应该有提示:类型:
JTextField
是单数,但变量名:
playerNames
是复数。:-)

请注意,
getPlayerNames()
还需要重新执行,以处理数组而不是单个字段


虽然这会起作用,但最终,整个代码块并不能很好地分离模型和视图,因此在编程过程中,一定要注意这一概念。

您可以按如下操作,创建
JTextField
列表:

JPanel playerPanel=newjpanel();
List playerNames=new ArrayList();
公共选择播放名称(){
对于(int i=0;i<8;i++){
JTextField playerName=新的JTextField();
playerPanel.add(新的JLabel(“Player”+(i+1));
playerPanel.add(playerName);
playerName.add(playerName);
}
playerPanel.setLayout(新的BoxLayout(playerPanel,BoxLayout.Y_轴));
playerPanel.add(长方体创建水平支柱(5));
}
公共JPanel getPanel(){
返回播放面板;
}
公共字符串getPlayerNames(){
字符串输出=”;
//从playerNames列表中退出
//或者更好,返回一个字符串列表
返回输出;
}

在循环中,创建标签、文本字段,并向文本字段添加操作侦听器,该侦听器将在字段中的文本更改时更新相应标签的值。将小部件添加到面板并重复。 package view;

import javax.swing.*;

public class OptionPlayerNames {

JPanel playerPanel = new JPanel();
JTextField playerNames = new JTextField();

public OptionPlayerNames() {
    for (int i = 0; i < 8; i++) {
JPanel playerPanel = new JPanel();
List<JTextField> playerNames = new ArrayList<JTextField>();

public OptionPlayerNames() {
    for (int i = 0; i < 8; i++) {
        JTextField playerName = new JTextField();

        playerPanel.add(new JLabel("Player " + (i + 1)));
        playerPanel.add(playerName);

        playerNames.add(playerName);
    }
    playerPanel.setLayout(new BoxLayout(playerPanel, BoxLayout.Y_AXIS));
    playerPanel.add(Box.createHorizontalStrut(5));
}

public JPanel getPanel() {
    return playerPanel;
}

public String getPlayerNames() {
    String output = "";
    // Compound you exit from the playerNames List
    // Or better, return a List of String
    return output;
}