FinalExam - BAD
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import your.package.name.KueDAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MainApp extends Application {
private Connection connection;
private JenisKueDAO jenisKueDAO;
private KueDAO kueDAO;
private ObservableList<JenisKue> jenisKueList;
private ObservableList<Kue> kueList;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// Membuat koneksi ke database
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/nama_database", "username", "password");
jenisKueDAO = new JenisKueDAO(connection);
kueDAO = new KueDAO(connection);
} catch (SQLException e) {
e.printStackTrace();
}
// Menginisialisasi data awal
try {
jenisKueList = FXCollections.observableArrayList(jenisKueDAO.getAll());
kueList = FXCollections.observableArrayList(kueDAO.getAll());
} catch (SQLException e) {
e.printStackTrace();
}
// Membuat antarmuka pengguna
BorderPane root = new BorderPane();
root.setPadding(new Insets(10));
TableView<JenisKue> jenisKueTableView = new TableView<>(jenisKueList);
TableColumn<JenisKue, Integer> jenisKueIdColumn = new TableColumn<>("ID");
jenisKueIdColumn.setCellValueFactory(cellData -> cellData.getValue().idProperty().asObject());
TableColumn<JenisKue, String> jenisKueNamaColumn = new TableColumn<>("Nama");
jenisKueNamaColumn.setCellValueFactory(cellData -> cellData.getValue().namaProperty());
jenisKueTableView.getColumns().addAll(jenisKueIdColumn, jenisKueNamaColumn);
TableView<Kue> kueTableView = new TableView<>(kueList);
TableColumn<Kue, Integer> kueIdColumn = new TableColumn<>("ID");
kueIdColumn.setCellValueFactory(cellData -> cellData.getValue().idProperty().asObject());
TableColumn<Kue, String> kueNamaColumn = new TableColumn<>("Nama");
kueNamaColumn.setCellValueFactory(cellData -> cellData.getValue().namaProperty());
TableColumn<Kue, JenisKue> kueJenisColumn = new TableColumn<>("Jenis");
kueJenisColumn.setCellValueFactory(cellData -> cellData.getValue().jenisProperty());
TableColumn<Kue, Integer> kueQtyColumn = new TableColumn<>("Qty");
kueQtyColumn.setCellValueFactory(cellData -> cellData.getValue().qtyProperty().asObject());
TableColumn<Kue, Double> kueHargaJualColumn = new TableColumn<>("Harga Jual");
kueHargaJualColumn.setCellValueFactory(cellData -> cellData.getValue().hargaJualProperty().asObject());
kueTableView.getColumns().addAll(kueIdColumn, kueNamaColumn, kueJenisColumn, kueQtyColumn, kueHargaJualColumn);
Button refreshButton = new Button("Refresh");
refreshButton.setOnAction(event -> {
try {
jenisKueList.setAll(jenisKueDAO.getAll());
kueList.setAll(kueDAO.getAll());
} catch (SQLException e) {
e.printStackTrace();
}
});
VBox vbox = new VBox(10);
vbox.setPadding(new Insets(10));
vbox.getChildren().addAll(refreshButton, jenisKueTableView, kueTableView);
root.setCenter(vbox);
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.setTitle("Aplikasi CRUD");
primaryStage.show();
}
@Override
public void stop() {
// Menutup koneksi database saat aplikasi berhenti
try {
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
INFO