asdu4

Untitled

Jun 3rd, 2020
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. import java.util.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4.  
  5. import javafx.event.ActionEvent;
  6.  
  7. import java.awt.*;
  8. import java.io.*;
  9.  
  10. public class QuizCardPlayer {
  11. private JTextArea display;
  12. private JTextArea answer;
  13. private ArrayList<QuizCard> cardList;
  14. private int currentCardIndex;
  15. private JFrame frame;
  16. private JButton nextButton;
  17. private boolean isShowAnswer;
  18.  
  19. public static void main(String[] args) {
  20. QuizCardPlayer reader = new QuizCardPlayer();
  21. reader.go();
  22. }
  23.  
  24. public void go() {
  25. // build gui
  26.  
  27. frame = new JFrame("Quiz Card Player");
  28. JPanel mainPanel = new JPanel();
  29. Font bigFont = new Font("sanserif", Font.BOLD, 24);
  30.  
  31. display = new JTextArea(10, 20);
  32. display.setFont(bigFont);
  33.  
  34. display.setLineWrap(true);
  35. display.setEditable(false);
  36.  
  37. JScrollPane qScroller = new JScrollPane(display);
  38. qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  39. qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  40. nextButton = new JButton("Show Question");
  41. mainPanel.add(qScroller);
  42. mainPanel.add(nextButton);
  43. nextButton.addActionListener(new NextCardListener());
  44.  
  45. JMenuBar menuBar = new JMenuBar();
  46. JMenu fileMenu = new JMenu("File");
  47. JMenuItem loadMenuItem = new JMenuItem("Load Card set");
  48. loadMenuItem.addActionListener(new OpenMenuListener());
  49. fileMenu.add(loadMenuItem);
  50. menuBar.add(fileMenu);
  51. frame.setJMenuBar(menuBar);
  52. frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
  53. frame.setSize(640, 500);
  54. frame.setVisible(true);
  55. }
  56.  
  57. public class NextCardListener implements ActionListener {
  58. public void actionPerformed(ActionEvent ev) {
  59. if (isShowAnswer) {
  60. // show the answer because they've seen the question
  61. display.setText(currentCard.getAnswer());
  62. nextButton.setText(("Next Card"));
  63. isShowAnswer = false;
  64. } else {
  65. // show the next question
  66. if (currentCardIndex < cardList.size()) {
  67. showNextCard();
  68. } else {
  69. // there are no more cards!
  70. display.setText("That was last card");
  71. nextButton.setEnabled(false);
  72. }
  73. }
  74. }
  75.  
  76. }
  77.  
  78. public class OpenMenuListener implements ActionListener {
  79. public void actionPerformed(ActionEvent ev) {
  80. JFileChooser fileOpen = new JFileChooser();
  81. fileOpen.showOpenDialog(frame);
  82. loadFile(fileOpen.getSelectedFile());
  83.  
  84. }
  85. }
  86.  
  87. private void loadFile(File file) {
  88. cardList = new ArrayList<QuizCard>();
  89. try {
  90. BufferedReader reader = new BufferedReader(new FileReader(file));
  91. String line = null;
  92. while ((line = reader.readLine()) != null) {
  93. makeCard(line);
  94. }
  95. reader.close();
  96. } catch (Exception ex) {
  97. System.out.println("Couldn't read the card file");
  98. ex.printStackTrace();
  99. }
  100. showNextCard();
  101. }
  102.  
  103. private void makeCard(String lineToParse) {
  104. String[] result = lineToParse.split("/");
  105. QuizCard card = new QuizCard(result[0], result[1]);
  106. CardList.add(card);
  107. System.out.println("made a card");
  108. }
  109.  
  110. private void showNextCard() {
  111. currentCard = cardList.get(currentCardIndex);
  112. currentCardIndex++;
  113. display.setText(currentCard.getQuestion());
  114. nextButton.setText("Show Answer");
  115. isShowAnswer = true;
  116. }
  117. }
Add Comment
Please, Sign In to add comment