Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <?import javafx.scene.text.*?>
- <?import javafx.scene.control.*?>
- <?import java.lang.*?>
- <?import javafx.scene.layout.*?>
- <?import javafx.scene.layout.AnchorPane?>
- <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">
- <children>
- <TableView fx:id="questionTable" editable="true" layoutY="80.0" prefHeight="288.0" prefWidth="306.0">
- <columns>
- <TableColumn fx:id="questionIDCol" prefWidth="75.0" text="Question ID" />
- <TableColumn fx:id="questionCol" onEditCommit="#editQuestion" prefWidth="230.0" text="Question" />
- </columns>
- </TableView>
- <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" />
- <Text fill="#3399ff" layoutX="81.0" layoutY="46.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Delete Question">
- <font>
- <Font size="30.0" />
- </font>
- </Text>
- <Button fx:id="back" layoutY="12.0" mnemonicParsing="false" onAction="#BackButtonAction" text="Back" />
- </children>
- </AnchorPane>
- package projektarbetequiz;
- import java.io.IOException;
- import java.net.URL;
- import java.util.ResourceBundle;
- import javax.swing.JOptionPane;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.fxml.FXML;
- import javafx.fxml.Initializable;
- import javafx.scene.control.Button;
- import javafx.scene.control.TableColumn;
- import javafx.scene.control.TableColumn.CellEditEvent;
- import javafx.scene.control.TableView;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.scene.control.cell.TextFieldTableCell;
- import java.sql.*;
- import javafx.fxml.FXMLLoader;
- import javafx.scene.Node;
- import javafx.scene.Parent;
- import javafx.scene.Scene;
- import javafx.stage.Stage;
- public class DeleteQuestionController implements Initializable
- {
- @FXML
- private Button deleteBtn;
- @FXML
- private Button back;
- @FXML
- private TableView<Question> questionTable;
- @FXML
- private TableColumn<Question, String> questionIDCol;
- @FXML
- private TableColumn<Question, String> questionCol;
- @FXML
- private ObservableList<Question> questionList = FXCollections.observableArrayList();
- private Question question;
- String url = "jdbc:mysql://localhost:3306/QuizDB";
- String user = "root";
- String pwd = "lithz1994";
- @FXML
- private void editQuestion(CellEditEvent<Question, String> table)
- {
- try(Connection conn = DriverManager.getConnection(url, user, pwd))
- {
- ((Question) table.getTableView().getItems().get(table.getTablePosition().getRow())).setQuestion(table.getNewValue());
- Question selectedQuestion = questionTable.getSelectionModel().getSelectedItem();
- int questionToBeEditedID = Integer.parseInt(selectedQuestion.getQuestionID());
- String questionToBeEdited = selectedQuestion.getQuestion();
- System.out.println("ID: " + questionToBeEditedID);
- System.out.println("Question: " + questionToBeEdited);
- String query = "UPDATE Question SET Question=? WHERE QuestionID=?";
- PreparedStatement statement = conn.prepareStatement(query);
- statement.setString(1, questionToBeEdited);
- statement.setInt(2, questionToBeEditedID);
- statement.executeUpdate();
- }
- catch(SQLException ex)
- {
- JOptionPane.showMessageDialog(null, "SQL ERROR: " + ex.getMessage());
- }
- }
- @FXML
- private void loadQuestions()
- {
- try(Connection conn = DriverManager.getConnection(url, user, pwd))
- {
- String query = "SELECT QuestionID, Question FROM Question";
- Statement stmt = conn.createStatement();
- ResultSet result = stmt.executeQuery(query);
- while(result.next())
- {
- String QID = result.getString("QuestionID");
- String quest = result.getString("Question");
- question = new Question(QID, quest);
- questionList.add(question);
- }
- }
- catch(SQLException ex)
- {
- JOptionPane.showMessageDialog(null, "Error connecting to database: " + ex.getMessage());
- }
- }
- @SuppressWarnings("unused")
- @FXML
- private void deleteQuestion()
- {
- try(Connection conn = DriverManager.getConnection(url, user, pwd))
- {
- Question selectedQuestion = questionTable.getSelectionModel().getSelectedItem();
- String questionToBeDeletedID = selectedQuestion.getQuestionID();
- String questionToBeDeleted = selectedQuestion.getQuestion();
- if(selectedQuestion != null)
- {
- questionList.remove(selectedQuestion);
- String query = "DELETE FROM Answers WHERE AnswerID=?";
- PreparedStatement statement = conn.prepareStatement(query);
- statement.setString(1, questionToBeDeletedID);
- statement.executeUpdate();
- query = "DELETE FROM Question WHERE Question=?";
- statement = conn.prepareStatement(query);
- statement.setString(1, questionToBeDeleted);
- statement.executeUpdate();
- }
- else
- {
- JOptionPane.showMessageDialog(null, "Error removing question!");
- }
- }
- catch(SQLException ex)
- {
- JOptionPane.showMessageDialog(null, "Error connecting to database: " + ex.getMessage());
- }
- }
- @FXML
- private void BackButtonAction(ActionEvent event) throws IOException {
- if (event.getSource() == back) {
- Parent p = FXMLLoader.load(getClass().getResource("FXMLAdminPanel.fxml"));
- Scene s = new Scene(p);
- Stage stg = (Stage) ((Node) event.getSource()).getScene().getWindow();
- stg.setScene(s);
- stg.show();
- }
- }
- @Override
- public void initialize(URL arg0, ResourceBundle arg1)
- {
- loadQuestions();
- questionIDCol.setCellValueFactory(new PropertyValueFactory<Question, String> ("questionID"));
- questionCol.setCellValueFactory(new PropertyValueFactory<Question, String> ("question"));
- questionTable.setItems(questionList);
- questionIDCol.setCellFactory(TextFieldTableCell.forTableColumn());
- questionCol.setCellFactory(TextFieldTableCell.forTableColumn());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement