長い文字列変数で出力を返すプログラムを作成しています。文字列のデータは、ユーザーが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;
}
}
私は連結リストに非常に新しいですし、私はそれらを理解しようとしています、このコードは、理にかなっていますか?テキストファイルに格納している文字列を保存するために何かを追加する必要がありますか?あなたはDNode
のコードを示していないが、それはまたE
型を取る -
は、あなたのMyLinkedList
クラスは型パラメータE
を取るように見える、すべてであなたのゲームのコードに取得せずに、事前
私は、あなたが 'MyLinkedList'クラスの変数' top'を初期化していない可能性がある問題を考えています。 –
[_Minimal_、Complete、およびVerifiable Example]の提供を検討してください(http://stackoverflow.com/help/mcve)。関連するビットを見つけるためにあなたのすべてのコードを調べる気がしません。 – qxz