[英]Populating 2D array from dynamic TextField After Event (Java)
我有一個帶有3個TextField的Java UI,當單擊一個按鈕時,將采用輸入並將其分配給數組中的相應列。 我該如何迭代,以便可以用多於一組的輸入填充數組:
https://i.stack.imgur.com/Zw1U6.png
單擊按鈕時,我有一個工作動作偵聽器:
nextActivity.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
MouseClicked(evt);}
private void MouseClicked(MouseEvent evt) {
String activityName = activityNameField.getText();
String activityDuration_String = activityDurationField.getText();
String dependantActivities = activityPredeField.getText();
但是,如何返回填充的對象數組'rowData [] []'?
根據您共享的UI和您的要求,我建議您使用“ 下一個活動”按鈕的“執行操作”方法,該方法非常容易實現。
為了存儲數據,如注釋中提到的@DevilsHnd,您至少需要知道在Java中初始化2D數組的行數。
(我認為您最初不需要知道列的大小,可以在需要時初始化列的大小)
現在,可能在這里存儲數據的最佳方法是使用List接口的ArrayList類。
在下面的解決方案中,我使用ArrayList來存儲多組輸入。
當您在代碼中使用數組時,我想出了一個解決方案,我們可以使用數組存儲單個輸入(3個文本字段數據)。
class data {
String information[];
data(String input[]) {
information = input;
}
@Override
public String toString() {
return "Activity Name: " + information[0] + ", Duration: "
+ information[1] + ", Predecessors: " +information[2];
}
}
ArrayList<data> Input = new ArrayList<>();
private void nextActivityActionPerformed(java.awt.event.ActionEvent evt) {
// Take data from the text fields..
String activityName = activityNameField.getText();
String activityDuration_String = activityDurationField.getText();
String dependantActivities = activityPredeField.getText();
// Store this data in an array of size 3..
String input[] = new String[3];
input[0] = activityName;
input[1] = activityDuration_String;
input[2] = dependantActivities;
// Store it in our global list..
Input.add(new data(input));
// set text fields empty so that new input can be taken..
activityNameField.setText("");
activityDurationField.setText("");
activityPredeField.setText("");
}
private void doneActionPerformed(java.awt.event.ActionEvent evt) {
// Take data from the text fields..
String activityName = activityNameField.getText();
String activityDuration_String = activityDurationField.getText();
String dependantActivities = activityPredeField.getText();
// A condition to check if the last entry was left taken as an input..
boolean condition = (activityName.equals("")) && (activityDuration_String.equals(""))
&& (dependantActivities.equals(""));
// if all 3 inputs are not empty then..
// You can change as per your requirements....
if(!condition) {
// Store this data in an array of size 3..
String input[] = new String[3];
input[0] = activityName;
input[1] = activityDuration_String;
input[2] = dependantActivities;
// Store it in our global list..
Input.add(new data(input));
// set text fields empty so that new input can be taken..
activityNameField.setText("");
activityDurationField.setText("");
activityPredeField.setText("");
}
for(data inp : Input)
System.out.println(inp); // Just print the stored data...
}
注意:
1)數據類存儲單個輸入集。
2)輸入列表將存儲在按下“完成”按鈕之前獲取的所有輸入集。
3)最后,所有輸入的數據均以“完成”按鈕的“操作已執行”方法進行打印。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.