I have put the System.out.println statements so you can see that i am displaying the correct question and corresponding answer.But please let me know how do i add it in the textArea.It is in the Play class.
Here is the entire code.Do let me know if any part of code is unclear.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
public class QuizCardBuilder
{
int z=-1;
ArrayList<QuizCard> list = new ArrayList<QuizCard>();
JTextArea question = new JTextArea(8,20);
JTextArea answer = new JTextArea(8,20);
JFrame fqcb = new JFrame("Quiz Card Builder");
/* public static void main(String args[])
{
QuizCardBuilder qcb = new QuizCardBuilder();
qcb.go();
} // */
public void go()
{
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
fqcb.setSize(400, 400);
JScrollPane qscroll = new JScrollPane(question);
JScrollPane ascroll = new JScrollPane(answer);
question.setLineWrap(true);
answer.setLineWrap(true);
qscroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qscroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
ascroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
ascroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(qscroll);
panel2.add(ascroll);
fqcb.getContentPane().add(BorderLayout.NORTH,panel);
fqcb.getContentPane().add(BorderLayout.CENTER,panel2);
fqcb.add(panel2);
fqcb.setVisible(true);
JPanel southpanel = new JPanel();
JButton nextCard = new JButton("NEXT CARD");
JButton done = new JButton("DONE");
southpanel.add(nextCard);
southpanel.add(done);
fqcb.add(BorderLayout.SOUTH,southpanel);
fqcb.setDefaultCloseOperation(fqcb.EXIT_ON_CLOSE);
nextCard.addActionListener(new NextCardAction());
done.addActionListener(new DoneAction());
}
class NextCardAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String a=question.getText();
String b=answer.getText();
z++;
QuizCard card = new QuizCard(z,a,B)/>;
list.add(card);
question.setText(null);
answer.setText(null);
}
}
class DoneAction implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
String a=question.getText();
String b=answer.getText();
z++;
QuizCard card = new QuizCard(z,a,B)/>;
list.add(card);
try
{
FileOutputStream fs = new FileOutputStream(new File("CardSet.ser"));
ObjectOutputStream os = new ObjectOutputStream(fs);
// System.out.println(list);
os.writeObject(list);
os.close();
}
catch(Exception e)
{
e.printStackTrace();
}
fqcb.dispose();
}
}
}
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class QuizCardPlayer
{
QuizCard qc = new QuizCard();
Play p = new Play();
public class CardSetListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
QuizCardBuilder qcb = new QuizCardBuilder();
qcb.go();
}
}
public class StartGameListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
qc.qt_no=0;
p.q=qc.qt_no;
Play play = new Play();
play.go();
}
}
public static void main(String args[])
{
QuizCardPlayer qcp = new QuizCardPlayer();
qcp.go();
}
public void go()
{
JFrame frame = new JFrame("Quiz Game");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem menuItem1 = new JMenuItem("Create card set");
JMenuItem menuItem2 = new JMenuItem("Start Game");
frame.add(BorderLayout.NORTH,menuBar);
menuBar.add(menu);
menu.add(menuItem1);
menu.add(menuItem2);
menuItem1.addActionListener(new CardSetListener());
menuItem2.addActionListener(new StartGameListener());
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import javax.swing.*;
public class Play
{
ArrayList<QuizCard> list2 = new ArrayList<QuizCard>();
JFrame playFrame = new JFrame("PLAY");
JTextArea textArea = new JTextArea("Text Area",5,10);
int q;
//QuizCardBuilder qcb = new QuizCardBuilder();
public class NextQuestionListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if(q==0)
{
QuizCard temp = new QuizCard();
temp =list2.get(q);
System.out.println(temp.qt);
textArea.setText(temp.qt);
}
else if(q>=list2.size())
{
textArea.setText("Questions over");
System.out.println("Questions over");
}
else
{
QuizCard temp = new QuizCard();
temp =list2.get(q);
textArea.setText(temp.qt);
System.out.println(temp.qt);
}
q++;
}
}
public class ShowAnswerListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
q--;
QuizCard temp = new QuizCard();
temp =list2.get(q);
textArea.setText(temp.ans);
System.out.println(temp.ans);
q++;
}
}
/* public static void main(String args[])
{
Play play = new Play();
play.go();
} */
public void go()
{
try
{
FileInputStream fs = new FileInputStream("CardSet.ser");
ObjectInputStream os = new ObjectInputStream(fs);
Object one = os.readObject();
list2 = (ArrayList<QuizCard>) one;
// System.out.println(list2.size());
}
catch(Exception ex)
{
ex.printStackTrace();
}
playFrame.setSize(400, 400);
playFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
playFrame.setVisible(true);
JPanel southPanel = new JPanel();
JScrollPane textAreaScroller = new JScrollPane();
textAreaScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
textAreaScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JButton nextQuestion = new JButton("Next Question");
JButton showAnswer = new JButton("Show Answer");
textArea.setLineWrap(true);
southPanel.add(nextQuestion);
southPanel.add(showAnswer);
playFrame.add(BorderLayout.SOUTH,southPanel);
textArea.setSize(20,20);
JPanel panel2= new JPanel();
panel2.add(textAreaScroller);
playFrame.getContentPane().add(BorderLayout.CENTER,textAreaScroller);
// playFrame.add(BorderLayout.NORTH,panel2);
textAreaScroller.setVisible(true);
textArea.setVisible(true);
nextQuestion.addActionListener(new NextQuestionListener());
showAnswer.addActionListener(new ShowAnswerListener());
}
}
import java.io.*;
public class QuizCard implements Serializable
{
// static int counter=0;
int qt_no;
String qt;
String ans;
QuizCard()
{
}
QuizCard(int q,String a,String B)/>
{
qt_no=q;
qt=a;
ans=b;
}
}
Thanks in advance.

New Topic/Question
Reply



MultiQuote





|