import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class QuizCardBulider {
private JTextArea question;
private JTextArea answer;
private ArrayList<Quizcard> cardList;
private JFrame frame;
public static void main(String[] args) {
QuizCardBulider gui = new QuizCardBulider();
gui.go();
}
public void go(){
frame = new JFrame("Quiz Card Builder");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
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);
answer = new JTextArea(6,20);
answer.setLineWrap(true);
answer.setWrapStyleWord(true);
answer.setFont(bigfont);
JScrollPane aScroll = new JScrollPane(answer);
aScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
aScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane qScroll = new JScrollPane(question);
qScroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JLabel qlabel = new JLabel("Question:");
JLabel alabel = new JLabel("Answer:");
JButton nextButton = new JButton("Next Card");
nextButton.addActionListener(new NextCardListener());
cardList = new ArrayList<Quizcard>();
mainPanel.add(qlabel);
mainPanel.add(qScroll);
mainPanel.add(alabel);
mainPanel.add(aScroll);
mainPanel.add(nextButton);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem newMenuItem = new JMenuItem("New");
JMenuItem saveMenuItem = new JMenuItem("Save");
newMenuItem.addActionListener(new NewMenuItemListener());
saveMenuItem.addActionListener(new SaveMenuItemListener());
menuBar.add(menu);
menu.add(newMenuItem);
menu.add(saveMenuItem);
frame.setJMenuBar(menuBar);
frame.getContentPane().add(BorderLayout.CENTER,mainPanel);
frame.setSize(500,600);
frame.setVisible(true);
}
public void clearCard(){
question.setText("");
question.requestFocus();
answer.setText("");
answer.requestFocus();
}
class NextCardListener implements ActionListener{
public void actionPerformed(ActionEvent event){
Quizcard card = new Quizcard(question.getText(),answer.getText());
cardList.add(card);
clearCard();
}
}
class SaveMenuItemListener implements ActionListener{
public void actionPerformed(ActionEvent event){
Quizcard card = new Quizcard(question.getText(),answer.getText());
cardList.add(card);
JFileChooser fileSave = new JFileChooser();
fileSave.showSaveDialog(frame);
saveFile(fileSave.getSelectedFile());
}
}
public void saveFile(File file){
try{
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for(Quizcard temp:cardList){
writer.write(temp.getQuestion()+"/");
writer.write(temp.getAnswer()+"\n");
}
writer.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
class NewMenuItemListener implements ActionListener{
public void actionPerformed(ActionEvent event){
cardList.clear();
clearCard();
}
}
}
class Quizcard{
private String question;
private String answer;
public Quizcard(String q,String a){
question = q;
answer = a;
}
public String getQuestion(){
return question;
}
public String getAnswer(){
return answer;
}
}
mport java.util.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class QuizCardPlayer {
private JTextArea display;
private JTextArea answer;
private ArrayList<Quizcard> cardList;
private Quizcard currentCard;
private int currentCardIndex;
private JFrame frame;
private JButton nextButton;
private boolean isShowAnswer;
public static void main(String[] args) {
QuizCardPlayer reader = new QuizCardPlayer();
reader.go();
}
public void go(){
frame = new JFrame("Quiz Card Player");
JPanel mainPanel = new JPanel();
Font bigFont = new Font("sanserif",Font.BOLD,24);
display = new JTextArea(10,20);
display.setFont(bigFont);
display.setLineWrap(true);
display.setEditable(false);
JScrollPane scrollPane = new JScrollPane(display);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
nextButton = new JButton("Show Question");
mainPanel.add(scrollPane);
mainPanel.add(nextButton);
nextButton.addActionListener(new NextCardListener());
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem loadMenuItem = new JMenuItem("Load card set");
loadMenuItem.addActionListener(new OpenMenuListener());
menu.add(loadMenuItem);
menuBar.add(menu);
frame.getContentPane().add(BorderLayout.CENTER,mainPanel);
frame.setJMenuBar(menuBar);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(640,500);
frame.setVisible(true);
}
public class NextCardListener implements ActionListener{
public void actionPerformed(ActionEvent event){
if(isShowAnswer){
display.setText(currentCard.getAnswer());
nextButton.setText("Next Card");
isShowAnswer = false;
}else{
if(currentCardIndex < cardList.size())
showNextcard();
else{
display.setText("That was last card!");
nextButton.setEnabled(false);
}
}
}
}
public void showNextcard(){
currentCard = cardList.get(currentCardIndex);
currentCardIndex++;
display.setText(currentCard.getQuestion());
nextButton.setText("Show answer");
isShowAnswer = true;
}
public void makeCard(String lineToParse){
String[] result = lineToParse.split("/");
Quizcard card = new Quizcard(result[0],result[1]);
cardList.add(card);
System.out.println("make a card");
}
public class OpenMenuListener implements ActionListener{
public void actionPerformed(ActionEvent event){
JFileChooser fileopen = new JFileChooser();
fileopen.showOpenDialog(frame);
loadFile(fileopen.getSelectedFile());
}
}
public void loadFile(File file){
cardList = new ArrayList<Quizcard>();
try{
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = null;
while((line = reader.readLine()) != null)
makeCard(line);
reader.close();
}catch (Exception ex){
ex.printStackTrace();
}
}
}