Advertisement
Guest User

Untitled

a guest
Mar 13th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.37 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <?import javafx.scene.text.*?>
  4. <?import javafx.scene.control.*?>
  5. <?import java.lang.*?>
  6. <?import javafx.scene.layout.*?>
  7. <?import javafx.scene.layout.AnchorPane?>
  8.  
  9. <AnchorPane prefHeight="382.0" prefWidth="306.0" style="-fx-background-color: #CCCCCC;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="projektarbetequiz.DeleteQuestionController">
  10.    <children>
  11.       <TableView fx:id="questionTable" editable="true" layoutY="80.0" prefHeight="288.0" prefWidth="306.0">
  12.         <columns>
  13.           <TableColumn fx:id="questionIDCol" prefWidth="75.0" text="Question ID" />
  14.           <TableColumn fx:id="questionCol" onEditCommit="#editQuestion" prefWidth="230.0" text="Question" />
  15.         </columns>
  16.       </TableView>
  17.       <Button fx:id="deleteBtn" layoutY="368.0" mnemonicParsing="false" onAction="#deleteQuestion" prefHeight="40.0" prefWidth="306.0" style="-fx-background-color: #3399FF;" text="Delete question" />
  18.       <Text fill="#3399ff" layoutX="81.0" layoutY="46.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Delete Question">
  19.          <font>
  20.             <Font size="30.0" />
  21.          </font>
  22.       </Text>
  23.       <Button fx:id="back" layoutY="12.0" mnemonicParsing="false" onAction="#BackButtonAction" text="Back" />
  24.    </children>
  25. </AnchorPane>
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. package projektarbetequiz;
  38.  
  39. import java.io.IOException;
  40. import java.net.URL;
  41. import java.util.ResourceBundle;
  42.  
  43. import javax.swing.JOptionPane;
  44.  
  45. import javafx.collections.FXCollections;
  46. import javafx.collections.ObservableList;
  47. import javafx.event.ActionEvent;
  48. import javafx.fxml.FXML;
  49. import javafx.fxml.Initializable;
  50. import javafx.scene.control.Button;
  51. import javafx.scene.control.TableColumn;
  52. import javafx.scene.control.TableColumn.CellEditEvent;
  53. import javafx.scene.control.TableView;
  54. import javafx.scene.control.cell.PropertyValueFactory;
  55. import javafx.scene.control.cell.TextFieldTableCell;
  56.  
  57. import java.sql.*;
  58. import javafx.fxml.FXMLLoader;
  59. import javafx.scene.Node;
  60. import javafx.scene.Parent;
  61. import javafx.scene.Scene;
  62. import javafx.stage.Stage;
  63.  
  64. public class DeleteQuestionController implements Initializable
  65. {
  66.     @FXML
  67.     private Button deleteBtn;
  68.        
  69.     @FXML
  70.     private Button back;
  71.     @FXML
  72.     private TableView<Question> questionTable;
  73.     @FXML
  74.     private TableColumn<Question, String> questionIDCol;
  75.     @FXML
  76.     private TableColumn<Question, String> questionCol;
  77.     @FXML
  78.     private ObservableList<Question> questionList = FXCollections.observableArrayList();
  79.     private Question question;
  80.    
  81.     String url = "jdbc:mysql://localhost:3306/QuizDB";
  82.     String user = "root";
  83.     String pwd = "lithz1994";
  84.    
  85.     @FXML
  86.     private void editQuestion(CellEditEvent<Question, String> table)
  87.     {
  88.         try(Connection conn = DriverManager.getConnection(url, user, pwd))
  89.         {
  90.             ((Question) table.getTableView().getItems().get(table.getTablePosition().getRow())).setQuestion(table.getNewValue());
  91.            
  92.             Question selectedQuestion = questionTable.getSelectionModel().getSelectedItem();
  93.             int questionToBeEditedID = Integer.parseInt(selectedQuestion.getQuestionID());
  94.             String questionToBeEdited = selectedQuestion.getQuestion();
  95.            
  96.             System.out.println("ID: " + questionToBeEditedID);
  97.             System.out.println("Question: " + questionToBeEdited);
  98.            
  99.             String query = "UPDATE Question SET Question=? WHERE QuestionID=?";
  100.             PreparedStatement statement = conn.prepareStatement(query);
  101.             statement.setString(1, questionToBeEdited);
  102.             statement.setInt(2, questionToBeEditedID);
  103.             statement.executeUpdate();
  104.         }
  105.         catch(SQLException ex)
  106.         {
  107.             JOptionPane.showMessageDialog(null, "SQL ERROR: " + ex.getMessage());
  108.         }
  109.     }
  110.    
  111.     @FXML
  112.     private void loadQuestions()
  113.     {
  114.         try(Connection conn = DriverManager.getConnection(url, user, pwd))
  115.         {
  116.             String query = "SELECT QuestionID, Question FROM Question";
  117.             Statement stmt = conn.createStatement();
  118.             ResultSet result = stmt.executeQuery(query);
  119.             while(result.next())
  120.             {
  121.                 String QID = result.getString("QuestionID");
  122.                 String quest = result.getString("Question");
  123.                 question = new Question(QID, quest);
  124.                 questionList.add(question);
  125.             }
  126.         }
  127.         catch(SQLException ex)
  128.         {
  129.             JOptionPane.showMessageDialog(null, "Error connecting to database: " + ex.getMessage());
  130.         }
  131.     }
  132.    
  133.     @SuppressWarnings("unused")
  134.     @FXML
  135.     private void deleteQuestion()
  136.     {
  137.         try(Connection conn = DriverManager.getConnection(url, user, pwd))
  138.         {
  139.             Question selectedQuestion = questionTable.getSelectionModel().getSelectedItem();
  140.             String questionToBeDeletedID = selectedQuestion.getQuestionID();
  141.             String questionToBeDeleted = selectedQuestion.getQuestion();
  142.             if(selectedQuestion != null)
  143.             {
  144.                 questionList.remove(selectedQuestion);
  145.                
  146.                 String query = "DELETE FROM Answers WHERE AnswerID=?";
  147.                 PreparedStatement statement = conn.prepareStatement(query);
  148.                 statement.setString(1, questionToBeDeletedID);
  149.                 statement.executeUpdate();
  150.                
  151.                 query = "DELETE FROM Question WHERE Question=?";
  152.                 statement = conn.prepareStatement(query);
  153.                 statement.setString(1, questionToBeDeleted);
  154.                 statement.executeUpdate();
  155.             }
  156.             else
  157.             {
  158.                            
  159.                 JOptionPane.showMessageDialog(null, "Error removing question!");
  160.             }
  161.         }
  162.         catch(SQLException ex)
  163.         {
  164.             JOptionPane.showMessageDialog(null, "Error connecting to database: " + ex.getMessage());
  165.         }
  166.              
  167.     }
  168.        
  169.     @FXML
  170.         private void BackButtonAction(ActionEvent event) throws IOException {
  171.  
  172.         if (event.getSource() == back) {
  173.            
  174.             Parent p = FXMLLoader.load(getClass().getResource("FXMLAdminPanel.fxml"));
  175.  
  176.             Scene s = new Scene(p);
  177.             Stage stg = (Stage) ((Node) event.getSource()).getScene().getWindow();
  178.  
  179.             stg.setScene(s);
  180.             stg.show();
  181.                
  182.     }
  183. }
  184.  
  185.     @Override
  186.     public void initialize(URL arg0, ResourceBundle arg1)
  187.     {
  188.         loadQuestions();
  189.         questionIDCol.setCellValueFactory(new PropertyValueFactory<Question, String> ("questionID"));
  190.         questionCol.setCellValueFactory(new PropertyValueFactory<Question, String> ("question"));
  191.         questionTable.setItems(questionList);
  192.        
  193.         questionIDCol.setCellFactory(TextFieldTableCell.forTableColumn());
  194.         questionCol.setCellFactory(TextFieldTableCell.forTableColumn());
  195.     }
  196.    
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement