Guest User

Untitled

a guest
Oct 16th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.15 KB | None | 0 0
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5.  
  6. import javafx.application.Application;
  7. import javafx.beans.property.SimpleStringProperty;
  8. import javafx.collections.FXCollections;
  9. import javafx.collections.ObservableList;
  10. import javafx.event.ActionEvent;
  11. import javafx.event.EventHandler;
  12. import javafx.scene.Group;
  13. import javafx.scene.Scene;
  14. import javafx.scene.control.Button;
  15. import javafx.scene.control.ComboBox;
  16. import javafx.scene.control.TableColumn;
  17. import javafx.scene.control.TableView;
  18. import javafx.scene.control.TextField;
  19. import javafx.scene.control.cell.PropertyValueFactory;
  20. import javafx.scene.paint.Color;
  21. import javafx.stage.Stage;
  22.  
  23. public class Main extends Application
  24. {
  25. public static class Pokemon
  26. {
  27. private final SimpleStringProperty ID, nama, elemen_1, elemen_2;
  28. private Pokemon(String ID, String nama, String elemen_1, String elemen_2)
  29. {
  30. this.ID = new SimpleStringProperty(ID);
  31. this.nama = new SimpleStringProperty(nama);
  32. this.elemen_1 = new SimpleStringProperty(elemen_1);
  33. this.elemen_2 = new SimpleStringProperty(elemen_2);
  34. }
  35. public String getID()
  36. {
  37. return ID.get();
  38. }
  39. public void setID(String fID)
  40. {
  41. ID.set(fID);
  42. }
  43. public String getNama()
  44. {
  45. return nama.get();
  46. }
  47. public void setNama(String fNama)
  48. {
  49. nama.set(fNama);
  50. }
  51. public String getElemen_1()
  52. {
  53. return elemen_1.get();
  54. }
  55. public void setElemen_1(String fElemen_1)
  56. {
  57. elemen_1.set(fElemen_1);
  58. }
  59. public String getElemen_2()
  60. {
  61. return elemen_2.get();
  62. }
  63. public void setElemen_2(String fElemen_2)
  64. {
  65. elemen_2.set(fElemen_2);
  66. }
  67. }
  68.  
  69. private final TableView<Pokemon> t_pokemon = new TableView<>();
  70. private final ObservableList<Pokemon> t_data = FXCollections.observableArrayList();
  71.  
  72. private final ComboBox<String> cb_elemen_1 = new ComboBox<String>(),
  73. cb_elemen_2 = new ComboBox<String>();
  74.  
  75. @Override
  76. public void start(Stage stage) throws Exception
  77. {
  78. Group root = new Group();
  79. Scene scene = new Scene(root, 400, 450, Color.WHITE);
  80. scene.getStylesheets().add("style.css");
  81.  
  82. TableColumn<Pokemon, String>
  83. t_col_0 = new TableColumn<Pokemon, String>("ID"),
  84. t_col_1 = new TableColumn<Pokemon, String>("Nama"),
  85. t_col_2 = new TableColumn<Pokemon, String>("Elemen 1"),
  86. t_col_3 = new TableColumn<Pokemon, String>("Elemen 2");
  87.  
  88. t_col_0.setCellValueFactory(new PropertyValueFactory<>("ID"));
  89. t_col_1.setCellValueFactory(new PropertyValueFactory<>("nama"));
  90. t_col_2.setCellValueFactory(new PropertyValueFactory<>("elemen_1"));
  91. t_col_3.setCellValueFactory(new PropertyValueFactory<>("elemen_2"));
  92.  
  93. t_pokemon.setLayoutX(25);
  94. t_pokemon.setLayoutY(25);
  95. t_pokemon.setMaxSize(350, 350);
  96.  
  97. t_col_0.setPrefWidth(50);
  98. t_col_1.setPrefWidth(100);
  99. t_col_2.setPrefWidth(100);
  100. t_col_3.setPrefWidth(100);
  101.  
  102. t_pokemon.setId("my-table");
  103.  
  104. t_pokemon.setEditable(true);
  105. t_pokemon.setItems(t_data);
  106. t_pokemon.getColumns().addAll(t_col_0, t_col_1, t_col_2, t_col_3);
  107.  
  108. root.getChildren().add(t_pokemon);
  109.  
  110. retrieveTable();
  111.  
  112. TextField tf_nama = new TextField();
  113.  
  114. tf_nama.setPromptText("NAMA POKEMON");
  115. tf_nama.setPrefWidth(100);
  116. tf_nama.setLayoutX(25);
  117. tf_nama.setLayoutY(400);
  118.  
  119. root.getChildren().add(tf_nama);
  120.  
  121. cb_elemen_1.setPromptText("ELEMEN 1");
  122. cb_elemen_1.setPrefWidth(100);
  123. cb_elemen_1.setLayoutX(135);
  124. cb_elemen_1.setLayoutY(400);
  125.  
  126. root.getChildren().add(cb_elemen_1);
  127.  
  128. cb_elemen_2.setPromptText("ELEMEN 2");
  129. cb_elemen_2.setPrefWidth(100);
  130. cb_elemen_2.setLayoutX(245);
  131. cb_elemen_2.setLayoutY(400);
  132.  
  133. root.getChildren().add(cb_elemen_2);
  134.  
  135. retrieveComboBox();
  136.  
  137. Button btn_add = new Button("+");
  138.  
  139. btn_add.setPrefWidth(10);
  140. btn_add.setLayoutX(355);
  141. btn_add.setLayoutY(400);
  142.  
  143. root.getChildren().add(btn_add);
  144.  
  145. btn_add.setOnAction(new EventHandler<ActionEvent>(){
  146.  
  147. @Override
  148. public void handle(ActionEvent arg0)
  149. {
  150. if(tf_nama.getText() != null && cb_elemen_1.getValue() != null && cb_elemen_2.getValue() != null)
  151. {
  152. insertTable(
  153. tf_nama.getText(),
  154. cb_elemen_1.getSelectionModel().getSelectedIndex(),
  155. cb_elemen_2.getSelectionModel().getSelectedIndex());
  156. }
  157. }
  158. });
  159.  
  160. stage.setScene(scene);
  161. stage.show();
  162. }
  163.  
  164. public void retrieveComboBox()
  165. {
  166. try
  167. {
  168. Class.forName("org.h2.Driver").newInstance();
  169. Connection connection =
  170. DriverManager.getConnection("jdbc:h2:tcp://localhost/~/saungkode", "saungkode", "");
  171.  
  172. Statement statement = connection.createStatement();
  173. ResultSet resultSet =
  174. statement.executeQuery("SELECT JENIS_ELEMEN FROM ELEMEN");
  175.  
  176. cb_elemen_1.getItems().add("-");
  177. cb_elemen_2.getItems().add("-");
  178.  
  179. while(resultSet.next())
  180. {
  181. cb_elemen_1.getItems().add(resultSet.getString("JENIS_ELEMEN"));
  182. cb_elemen_2.getItems().add(resultSet.getString("JENIS_ELEMEN"));
  183. }
  184.  
  185. connection.close();
  186. statement.close();
  187. resultSet.close();
  188. }
  189. catch(Exception e)
  190. {
  191. System.out.println("Error : " + e);
  192. }
  193. }
  194.  
  195. public void retrieveTable()
  196. {
  197. try
  198. {
  199. Class.forName("org.h2.Driver").newInstance();
  200. Connection connection =
  201. DriverManager.getConnection("jdbc:h2:tcp://localhost/~/saungkode", "saungkode", "");
  202.  
  203. Statement statement = connection.createStatement();
  204. ResultSet resultSet =
  205. statement.executeQuery(
  206. "SELECT poke.id_pokemon, poke.nama, elm.jenis_elemen "
  207. + "FROM pokemon poke, elemen elm "
  208. + "WHERE poke.elemen_primer = elm.id_elemen "
  209. + "OR poke.elemen_sekunder = elm.id_elemen");
  210.  
  211. t_data.clear();
  212.  
  213. String col1 = "",
  214. col2 = "",
  215. col3 = "",
  216. col4 = "";
  217.  
  218. boolean odd = true;
  219. int beforeID = -1;
  220.  
  221. while(resultSet.next())
  222. {
  223. col1 = resultSet.getString("ID_POKEMON");
  224.  
  225. if(odd)
  226. {
  227. col2 = resultSet.getString("NAMA");
  228. col3 = resultSet.getString("JENIS_ELEMEN");
  229. }
  230. else
  231. {
  232. if(beforeID == Integer.parseInt(col1))
  233. {
  234. col4 = resultSet.getString("JENIS_ELEMEN");
  235.  
  236. t_data.add(
  237. new Pokemon(col1, col2, col3, col4));
  238. }
  239. else
  240. {
  241. col4 = "-";
  242.  
  243. t_data.add(
  244. new Pokemon(String.valueOf(beforeID), col2, col3, col4));
  245.  
  246. col2 = resultSet.getString("NAMA");
  247. col3 = resultSet.getString("JENIS_ELEMEN");
  248.  
  249. odd = !odd;
  250. }
  251. }
  252.  
  253. beforeID = Integer.parseInt(col1);
  254. odd = !odd;
  255. }
  256.  
  257. connection.close();
  258. statement.close();
  259. resultSet.close();
  260. }
  261. catch(Exception e)
  262. {
  263. System.out.println("Error : " + e);
  264. }
  265. }
  266.  
  267. public void insertTable(String nama, int elemen_1, int elemen_2)
  268. {
  269. try
  270. {
  271. Class.forName("org.h2.Driver").newInstance();
  272. Connection connection =
  273. DriverManager.getConnection("jdbc:h2:tcp://localhost/~/saungkode", "saungkode", "");
  274.  
  275. String query = "INSERT INTO POKEMON "
  276. + "(NAMA, ELEMEN_PRIMER, ELEMEN_SEKUNDER) "
  277. + "VALUES('"+nama+"', ";
  278.  
  279. if(elemen_1 > 0)
  280. {
  281. query += elemen_1;
  282. }
  283. else
  284. {
  285. query += "null";
  286. }
  287.  
  288. query += ", ";
  289.  
  290. if(elemen_2 > 0)
  291. {
  292. query += elemen_2;
  293. }
  294. else
  295. {
  296. query += "null";
  297. }
  298.  
  299. query += ")";
  300.  
  301. Statement statement = connection.createStatement();
  302. statement.executeUpdate(query);
  303.  
  304. retrieveTable();
  305.  
  306. connection.close();
  307. statement.close();
  308. }
  309. catch(Exception e)
  310. {
  311. System.out.println("Error : " + e);
  312. }
  313. }
  314. }
Add Comment
Please, Sign In to add comment