QuizCardPlayer

import java.io.*;
public class QuizCard implements Serializable
{
	String question;
	String answer;
	public QuizCard(String a,String b)
	{
		question=a;
		answer=b;
	}
	public String getAnswer()
	{
		return answer;
	}
	public String getQuestion()
	{
		return question;
	}
}


import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
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");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel mainPanel=new JPanel();
		Font bigFont=new Font("sanerif",Font.BOLD,24);
		display=new JTextArea(10,20);
		display.setFont(bigFont);
		display.setLineWrap(true);
		display.setEditable(false);
		JScrollPane qScroller=new JScrollPane(display);
		qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		nextButton=new JButton("Show Question");
		mainPanel.add(qScroller);
		mainPanel.add(nextButton);
		nextButton.addActionListener(new NextCardListener());
		JMenuBar menuBar=new JMenuBar();
		JMenu fileMenu=new JMenu("File");
		JMenuItem loadMenuItem=new JMenuItem("Load card set");
		loadMenuItem.addActionListener(new OpenMenuListener());
		fileMenu.add(loadMenuItem);
		menuBar.add(fileMenu);
		frame.setJMenuBar(menuBar);
		frame.getContentPane().add(BorderLayout.CENTER,mainPanel);
		frame.setSize(640,500);
		frame.setVisible(true);
	}
	public class NextCardListener implements ActionListener
	{
		public void actionPerformed(ActionEvent ev)
		{
			if(isShowAnswer)
			{
				display.setText(currentCard.getAnswer());
				nextButton.setText("Next Card");
				isShowAnswer=false;
				//System.out.println(isShowAnswer);
			}else{
				if(currentCardIndex<cardList.size())
				{
					showNextCard();
					//System.out.println(isShowAnswer);
				}
				else
				{
					display.setText("That was last card");
					nextButton.setEnabled(false);
				}
			}
		}
	}
	public class OpenMenuListener implements ActionListener
	{
		public void actionPerformed(ActionEvent ev)
		{

			JFileChooser fileOpen=new JFileChooser();
			fileOpen.showOpenDialog(frame);
			loadFile(fileOpen.getSelectedFile());
		}
	}
	private 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)
		{
			System.out.println("couldn't read the card file");
			ex.printStackTrace();
		}
	}
	private void makeCard(String lineToParse)
	{
		String [] result=lineToParse.split("/");
		QuizCard card=new QuizCard(result[0],result[1]);
		cardList.add(card);
		System.out.println("made a card");
	}
	private void showNextCard()
	{
		currentCard=cardList.get(currentCardIndex);
		currentCardIndex++;
		display.setText(currentCard.getQuestion());
		nextButton.setText("Show Answer");
		isShowAnswer=true;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import java.util.*; import java.awt.event.*; import javax.swing.*; import java.awt.*; 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 builder=new QuizCardBuilder(); builder.go(); } public void go(){ frame=new JFrame("Quiz Card Build"); 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(answer); qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); qScroller.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); } public class NextCardListener implements ActionListener{ public void actionPerformed(ActionEvent ev){ QuizCard card=new QuizCard(question.getText(),answer.getText()); cardList.add(card); clearCard(); } } public class SaveMenuListener implements ActionListener{ public void actionPerformed(ActionEvent ev){ QuizCard card=new QuizCard(question.getText(),answer.getText()); cardList.add(card); JFileChooser fileSave=new JFileChooser(); fileSave.showSaveDialog(frame); saveFile(fileSave.getSelectedFile()); } } public class NewMenuListener implements ActionListener{ public void actionPerformed(ActionEvent ev){ cardList.clear(); clearCard(); } } private 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"); } writer.close(); }catch(IOException ex){ System.out.println("couldn't write the cardList out"); ex.printStackTrace(); } } } public class QuizCard { String question; String answer; public QuizCard(String q,String a){ question=q; question=a; } public String getQuestion(){ return question; } public String getAnswer(){ return answer; } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值