2017-10-15 54 views
-1

尝试存储一个TextField在这样一个HashMap:JavaFX的:存储文本字段中的HashMap

TextField textfield; 
Map<String, TextField> map = new HashMap<String, TextField>(); 
     for(int row = 0; row < RowLim; row++) { 
      for(int col = 0; col < ColLim; col++) { 
       String name = row+""+col; 
       map.put(name,textfield = new TextField()); 
      } 
     } 

这是一个数独解算器旨在教我一些关于JavaFX。每个文本字段都显示在一个网格窗格中,并且应该有一个对应于其在我的地图中的位置的Key。但是,当我在任何文本字段中输入并打印它时,我会得到一个空值。我认为我对textfield的工作方式没有正确的想法,但是看不到任何其他解决方案,所以我被卡住了。打印时使用textfield.getText()方法。

回答

-1

我最终通过添加一个新的HashMap来解决它,该HashMap检索每个textfield.getText()值并将其存储为一个String。添加一个try-catch语句来排除所有的空语句。它工作完美。这里是我的代码:

Map<String, String> numbermap = new HashMap<String, String>(); 
     for(Map.Entry<String,TextField> me : map.entrySet()) { 
      numbermap.put(me.getKey(),me.getValue().getText()); 
     } 
     try { 
      for(Map.Entry<String,String> me : numbermap.entrySet()) { 
       //Code to use inputvalues from each textfield... 
      } 

     } catch (NullPointerException e) { 
      System.out.println("Gives null"); 
     } 
相关问题