Java 从几个局部变量之一的JTextField获取数据

Java 从几个局部变量之一的JTextField获取数据,java,swing,jtextfield,parseint,absolutelayout,Java,Swing,Jtextfield,Parseint,Absolutelayout,所以我在读一个文件,我得到了文件中的行数。基于此,我生成了我的接口。现在我需要有能力编辑valus trougth UI。Rows是一个变量,它包含输入文档的行数。当然,下面的代码不起作用。我想将新值写入从中读取的数组 for(int i=0;i<Rows;i++) { //System.out.println("!"+Symbol[1]+"!"); //if(Symbol[i]!=""&&Symbol[i]!=null) // { JTex

所以我在读一个文件,我得到了文件中的行数。基于此,我生成了我的接口。现在我需要有能力编辑valus trougth UI。Rows是一个变量,它包含输入文档的行数。当然,下面的代码不起作用。我想将新值写入从中读取的数组

for(int i=0;i<Rows;i++)
{
    //System.out.println("!"+Symbol[1]+"!");
    //if(Symbol[i]!=""&&Symbol[i]!=null)
    // {
    JTextField symbol = new JTextField(6);
    symbol.setText(Symbol[i]);
    symbol.setBounds(10,25*i+10 , 75, 20);
    symbol.setEditable(false);
    frame.add(symbol);
    JTextField buyf = new JTextField(4);
    buyf.setText(String.valueOf(buy[i]));
    buyf.setBounds(95, 25*i+10, 50, 20);
    buyf.setEditable(true);
    buyf.addActionListener(new java.awt.event.ActionListener() { 
         public void actionPerformed(ActionEvent ae) {  
              buy[i]=Integer.parseInt(buyf.getText());
         }
    });                      
    frame.add(buyf);
} 
for(int i=0;i
  • 不要使用例如
    symbol.setBounds(10,25*i+10,75,20);
    使用适当的
    LayoutManager
    ,可能最适合您的

  • 用于侦听中的更改

  • 使用,而不是普通的,然后您可以删除关于
    parsewhere

  • 您可以使用普通但与
    DocumentFilter
    一起使用(删除非数字字符)

  • 可能是正确的
    Listener
    另一种选择是第二点的
    DocumentListener

  • 为了获得更好的帮助,请尽快发布一篇文章,但我认为
    DocumentListener
    可以解决这个问题


  • 我不知道你想要什么…但问题的标题可能是你的答案?不要让它们成为局部变量..我想阅读一个基于此生成UI的文件,并能够使用JTextFields进行输入问题的描述不清楚…无论如何,如果你想在匿名中使用“buyf”变量,必须将其声明为最终变量内部类。我希望在运行时根据输入文件生成一定数量的JTextFields,然后将这些JTextFields中的值写入一个数组,其中每个JTextField都连接到该数组中的一个且仅连接到一个单元格。该数组是公共的。请遵守java编码约定。看起来您有一个名为
    symbol的变量和一个名为
    Symbol