我正在做一个程序,它返回一个长字符串变量的输出。字符串中的数据会根据用户在GUI中输入的内容而不断变化。我的问题是,我如何把它存储在我的链表中?我已经看了几个例子,但是我为我的班级提供的班级有点不同,而且我一直无法找到解决问题的方法。将字符串变量添加到链接列表?
控制器代码:
public class RentGameDialogController extends RentalStoreGUIController implements Initializable{
/** TextField Objects **/
@FXML private TextField nameField, rentedOnField, dueBackField;
/** String for NameField **/
String name, rentedOn, dueBack;
/** Game ComboBox ID's **/
@FXML private ObservableList<GameType> cbGameOptions;
@FXML private ComboBox<GameType> cbGame;
/** Console ComboBox ID's **/
@FXML private ObservableList<PlayerType> cbConsoleOptions;
@FXML private ComboBox<PlayerType> cbConsole;
/** GameType object **/
private GameType game;
/** PlayerType Object **/
private PlayerType console;
/** Button ID's **/
@FXML Button cancel, addToCart;
/** Counter for calculating total **/
int gameCounter;
/** Stage for closing GUI **/
private Stage currentStage;
private MyLinkedList list = new MyLinkedList();
@Override
public void initialize(URL location, ResourceBundle resources) {
/** Select Console **/
cbConsoleOptions = FXCollections.observableArrayList();
for (PlayerType p : PlayerType.values()) { cbConsoleOptions.addAll(p); }
cbConsole.getItems().addAll(cbConsoleOptions);
/** Select Game **/
cbGameOptions = FXCollections.observableArrayList();
for (GameType g : GameType.values()){ cbGameOptions.addAll(g); }
cbGame.getItems().addAll(cbGameOptions);
}
public String getName(){
name = nameField.getText();
try {
String[] firstLast = name.split(" ");
String firstName = firstLast[0];
String lastName = firstLast[1];
} catch (Exception e){
e.printStackTrace();
}
return name;
}
public String getGame() {
return cbGame.getSelectionModel().getSelectedItem().toString();
}
public String getConsole() {
return cbConsole.getSelectionModel().getSelectedItem().toString();
}
public String getRentedOn() throws ParseException {
rentedOn = rentedOnField.getText();
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date rentedOnDate = format.parse(rentedOn);
Calendar cal = Calendar.getInstance();
cal.setLenient(false);
cal.setTime(rentedOnDate);
try {
cal.getTime();
} catch (Exception e) {
rentedOnField.setText("ERROR");
}
return rentedOn;
}
public String getDueBack() throws ParseException {
dueBack = dueBackField.getText();
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date dueBackDate = format.parse(dueBack);
Calendar cal = Calendar.getInstance();
cal.setLenient(false);
cal.setTime(dueBackDate);
try {
cal.getTime();
} catch (Exception e) {
dueBackField.setText("ERROR");
}
return dueBack;
}
/*************************************
* This is the method to call the other
* String methods so their output can be
* put into my main GUI
*
*
* @return
* @throws ParseException
*************************************/
public String storePurchaseData() throws ParseException {
gameCounter++;
String toList = getName() + " | " + getGame() + " | " + getConsole() + " | " +
getRentedOn() + " | " + getDueBack();
//Add 'toList' to the linked list here if possible
return toList;
}
@FXML
public void handleCancelButtonAction() {
currentStage = (Stage) cancel.getScene().getWindow();
currentStage.close();
}
@FXML
public void addToCartButton() throws ParseException {
appendTextArea(storePurchaseData());
currentStage = (Stage) cancel.getScene().getWindow();
currentStage.close();
}}
此代码是我的控制器。它启动一个基本的GUI,然后我可以从我制作的所有字段中提取数据,将它们转换为字符串,然后可以将它们打印在一长串文本中。我想将字符串存储到我的链接列表类中。
链表代码:
public class MyLinkedList<E> implements Serializable {
private DNode<E> top;
public int size;
public MyLinkedList() {
top = null;
size = 0;
}
}
我很新的链表,我想了解他们,这段代码有意义吗?我是否需要添加任何内容,比如说将我存储的字符串保存到文本文件中?
预先感谢您
我看到的一个可能的问题是,您没有在MyLinkedList类中初始化变量top。 –
考虑提供[_Minimal_,Complete和Verifiable示例](http://stackoverflow.com/help/mcve)。我不想筛选你的所有代码来找到相关的位 – qxz