私はまったく新しいJavaとImをちょっと試してみました。次のコードでは、AddButton経由で新しい項目を追加できるListViewを設定しました。項目をAddButton経由でTableViewに追加しましたか?
は今、私は次の時間は、イム、コード内のデフォルトの項目1-5でなく、私がした項目だけでなく、コードを実行しているように、私のプログラムでは、これらの手動で追加したアイテムを保存する方法を思ったんだけど手動で追加されたものが私のテーブルに表示されますか?私は手動で追加された項目が保存され、コードを再度実行するたびに読み込まれるいくつかの外部ライブラリを構築する必要があると思いますか?
また、削除ボタンをクリックして1つのボタンで複数のアイテムをマーキングして削除するにはどうすればよいですか?
さらに、このコードをライトするもう1つの詳細な方法があります。selectedProducts.forEach(allProducts :: remove);ここで何が起こっているの背景を確認するには?
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
//BAUSTEINE - Eingabefeld:
TextField nameInput = new TextField();
nameInput.setMinWidth(100);
nameInput.setPromptText("Name");
TextField priceInput = new TextField();
priceInput.setMinWidth(100);
priceInput.setPromptText("Price");
TextField quantityInput = new TextField();
quantityInput.setMinWidth(100);
quantityInput.setPromptText("Quantity");
//BAUSTEINE - Tabelle:
TableColumn<Product, String> nameSpalte = new TableColumn<>();
nameSpalte.setText("Name");
nameSpalte.setMinWidth(200);
nameSpalte.setCellValueFactory(new PropertyValueFactory<>("Name"));
TableColumn<Product, Double> priceSpalte = new TableColumn<>();
priceSpalte.setText("Price");
priceSpalte.setMinWidth(200);
priceSpalte.setCellValueFactory(new PropertyValueFactory<>("price"));
TableColumn<Product, String> quantitySpalte = new TableColumn<>();
quantitySpalte.setText("Quantity");
quantitySpalte.setMinWidth(200);
quantitySpalte.setCellValueFactory(new PropertyValueFactory<>("quantity"));
TableView<Product> tabelle = new TableView<Product>();
tabelle.getColumns().addAll(nameSpalte, priceSpalte, quantitySpalte);
tabelle.setItems(getProduct());
//BAUSTEINE - Buttons:
Button addButton = new Button("Add");
addButton.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
Product product = new Product();
product.setName(nameInput.getText());
product.setPrice(Double.parseDouble(priceInput.getText()));
product.setQuantity(Integer.parseInt(quantityInput.getText()));
tabelle.getItems().addAll(product);
nameInput.clear();
priceInput.clear();
quantityInput.clear();
}
});
Button deleteButton = new Button("Delete");
deleteButton.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
ObservableList<Product> allProducts = tabelle.getItems();
ObservableList<Product> selectedProducts = tabelle.getSelectionModel().getSelectedItems();
selectedProducts.forEach(allProducts:: remove);
}
});
//LAYOUT:
HBox hBox = new HBox();
hBox.setPadding(new Insets(10,10,10,10));
hBox.setSpacing(10);
hBox.getChildren().addAll(nameInput, priceInput, quantityInput, addButton, deleteButton);
VBox vBox = new VBox();
vBox.getChildren().addAll(tabelle, hBox);
//EIGENSCHAFTEN DER SCENE:
Scene scene = new Scene(vBox);
//EIGENSCHAFTEN DER STAGE:
stage.setScene(scene);
//PROGRAMMSTART:
stage.show();
}
public ObservableList<Product> getProduct() {
ObservableList<Product> products = FXCollections.observableArrayList();
products.add(new Product("Item 1", 859.00, 20));
products.add(new Product("Item 2", 2.49, 198));
products.add(new Product("Item 3", 99.00, 74));
products.add(new Product("Item 4", 19.99, 12));
products.add(new Product("Item 5", 1.49, 856));
return products;
}
}
やあジェームス、最も一般的なまたは最も近代的な方法は何か、JSON + GsonライブラリまたはJDBC?私はJsonの方法のために、私はいくつかのjavascriptを理解する必要があると思います。私はまだそれを学んでいませんでした...私もSQLを使用できますか?長所短所? – Richi888
それには簡単な答えはありません。あなたはJSONを使うためにjavascriptを知る必要はありません。オブジェクトを表現するためのテキスト形式です(javascriptは非常に分かりやすいですが、javascriptは必要ありません)。しかし、どちらを選択するかは、ユースケースによって異なります。アプリケーションの外部からデータにアクセスしたいのですか?アプリケーションにデータベースエンジンを組み込むのがどれくらい簡単か、サードパーティのライブラリなどを使うのがどれくらい簡単かなどです –