QuizCardBuilder

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 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);
		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);
		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());//创建菜单,把new和save项目加到File下,然后指定frame使用这个菜单,菜单项目会触发ActionEvent
		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完成的
			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();
		}
	}
}


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;
	}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值