/
QuizCardBuilder.java
136 lines (112 loc) · 4.02 KB
/
QuizCardBuilder.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class QuizCardBuilder
{
private JTextArea question;
private JTextArea answer;
private ArrayList<QuizCard> cardList;
private JFrame frame;
public static void main(String[] args)
{
QuizCardBuilder gui=new QuizCardBuilder();
gui.go();
}
public void go()
{
//build gui
frame=new JFrame("Quiz Card Buider");
JPanel mainPanel=new JPanel();
Font bigFont=new Font("sanserif",Font.BOLD,24);
question=new JTextArea(6,20);
question.setLineWrap(true);
question.setWrapStyleWord(true);
question.setFont(bigFont);
JScrollPane qScroller=new JScrollPane(question);
qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
answer=new JTextArea(6,20);
answer.setLineWrap(true);
answer.setWrapStyleWord(true);
answer.setFont(bigFont);
JScrollPane aScroller=new JScrollPane(question);
aScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
aScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JButton nextButton=new JButton("Next Card");
cardList=new ArrayList<QuizCard>();
JLabel qLabel=new JLabel("Question");
JLabel aLabel=new JLabel("Answer");
mainPanel.add(qLabel);
mainPanel.add(qScroller);
mainPanel.add(aLabel);
mainPanel.add(aScroller);
mainPanel.add(nextButton);
nextButton.addActionListener(new NextCardListener());
JMenuBar menuBar=new JMenuBar();
JMenu fileMenu=new JMenu("File");
JMenuItem newMenuItem=new JMenuItem("New");
JMenuItem saveMenuItem=new JMenuItem("Save");
newMenuItem.addActionListener(new NewMenuListener());
saveMenuItem.addActionListener(new SaveMenuListener());
fileMenu.add(newMenuItem);
fileMenu.add(saveMenuItem);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
frame.setSize(500,600);
frame.setVisible(true);
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class NextCardListener implements ActionListener
{
public void actionPerformed(ActionEvent a)
{
QuizCard card=new QuizCard(question.getText(),answer.getText());
cardList.add(card);
clearCard();
}
}
public class SaveMenuListener implements ActionListener
{
public void actionPerformed(ActionEvent a)
{
QuizCard card=new QuizCard(question.getText(),answer.getText());
cardList.add(card);
clearCard();
JFileChooser fileSave=new JFileChooser();
fileSave.showSaveDialog(frame);
saveFile(fileSave.getSelectedFile());
}
}
public class NewMenuListener implements ActionListener
{
public void actionPerformed(ActionEvent a)
{
cardList.clear();
clearCard();
}
}
public void clearCard()
{
question.setText("");
answer.setText("");
question.requestFocus();
}
private void saveFile(File file)
{
try
{
BufferedWriter writer=new BufferedWriter(new FileWriter(file));
for(QuizCard card:cardList)
{
writer.write(card.getQuestion()+"/");
writer.write(card.getAnswer()+"/n");
}
}catch(IOException ex){
System.out.println("Couldn't wirite the cardList out");
ex.printStackTrace();
}
}
}