There is no such code in the book, I have to tinker with it completely ....
Is the feeling system a bit grand, do not hurry, slowly play ~! ~~
The world is wonderful yo ~ ~:
Quizcard.java
Package QuizCard.sky.com; Public class Quizcard { private String qstr; Private String aStr; Quizcard (string s1, string s2) { = S1; = s2; } String getquestion () { return qstr; } String getanswer () { return aStr; }}
Quizcardbuilder.java
PackageQuizCard.sky.com;ImportJava.util.*;Importjava.awt.event.*;Importjavax.swing.*;Importjava.awt.*;ImportJava.io.*; Public classQuizcardbuilder {PrivateJTextArea question; PrivateJTextArea answer; PrivateArraylist<quizcard>cardlist; PrivateJFrame frame; Public Static voidMain (string[] args) {Quizcardbuilder builder=NewQuizcardbuilder (); Builder.go (); } Public voidGo () {frame=NewJFrame ("Quiz Card Builder"); JPanel Mainpanel=NewJPanel (); Font Bigfont=NewFont ("Sanserif", Font.Bold, 24); Question=NewJTextArea (6, 20); Question.setlinewrap (true); Question.setwrapstyleword (true); Question.setfont (Bigfont); JScrollPane Qscroller=NewJScrollPane (question); Qscroller.setverticalscrollbarpolicy (scrollpaneconstants.vertical_scrollbar_always); Qscroller.sethorizontalscrollbarpolicy (Scrollpaneconstants.horizontal_scrollbar_never); Answer=NewJTextArea (6, 20); Answer.setlinewrap (true); Answer.setwrapstyleword (true); Answer.setfont (Bigfont); JScrollPane Ascroller=NewJScrollPane (answer); Ascroller.setverticalscrollbarpolicy (scrollpaneconstants.vertical_scrollbar_always); Ascroller.sethorizontalscrollbarpolicy (Scrollpaneconstants.horizontal_scrollbar_never); JButton Nextbutton=NewJButton ("Next Card")); Cardlist=NewArraylist<quizcard>(); JLabel Qlabel=NewJLabel ("Question:"); JLabel Alabel=NewJLabel ("Answer:"); Mainpanel.add (Qlabel); Mainpanel.add (Qscroller); Mainpanel.add (Alabel); Mainpanel.add (Ascroller); Mainpanel.add (Nextbutton); Nextbutton.addactionlistener (NewNextcardlistener ()); JMenuBar MenuBar=NewJMenuBar (); JMenu Filemenu=NewJMenu ("File"); JMenuItem Newmenuitem=NewJMenuItem ("New"); JMenuItem Savemenuitem=NewJMenuItem ("Save"); Newmenuitem.addactionlistener (NewNewmenulistener ()); Savemenuitem.addactionlistener (NewSavemenulistener ()); 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 classNextcardlistenerImplementsActionListener { Public voidactionperformed (ActionEvent ev) {Quizcard card=NewQuizcard (Question.gettext (), Answer.gettext ()); Cardlist.add (card); Clearcard (); } } Public classSavemenulistenerImplementsActionListener { Public voidactionperformed (ActionEvent ev) {Quizcard card=NewQuizcard (Question.gettext (), Answer.gettext ()); Cardlist.add (card); JFileChooser FileSave=NewJFileChooser (); Filesave.showsavedialog (frame); SaveFile (Filesave.getselectedfile ()); } } Public classNewmenulistenerImplementsActionListener { Public voidactionperformed (ActionEvent ev) {cardlist.clear (); Clearcard (); } } Private voidClearcard () {Question.settext (""); Answer.settext (""); Question.requestfocus (); } Private voidsaveFile (file file) {Try{bufferedwriter writer=NewBufferedWriter (NewFileWriter (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 (); } }}
Quizcardplayer.java
PackageQuizCard.sky.com;ImportJava.util.*;Importjava.awt.event.*;Importjavax.swing.*;Importjava.awt.*;ImportJava.io.*; Public classQuizcardplayer {PrivateJTextArea display; PrivateJTextArea answer; PrivateArraylist<quizcard>cardlist; PrivateQuizcard Currentcard; Private intCurrentcardindex; PrivateJFrame frame; PrivateJButton Nextbutton; Private BooleanIsshowanswer; Public Static voidMain (string[] args) {//TODO auto-generated Method StubQuizcardplayer reader =NewQuizcardplayer (); Reader.go (); } Public voidGo () {frame=NewJFrame ("Quiz Card Player"); JPanel Mainpanel=NewJPanel (); Font Bigfont=NewFont ("Sanserif", Font.Bold, 24); Display=NewJTextArea (10, 20); Display.setfont (Bigfont); Display.setlinewrap (true); Display.seteditable (false); JScrollPane Qscroller=NewJScrollPane (display); Qscroller.setverticalscrollbarpolicy (scrollpaneconstants.vertical_scrollbar_always); Qscroller.sethorizontalscrollbarpolicy (Scrollpaneconstants.horizontal_scrollbar_never); Nextbutton=NewJButton ("Show Question"); Mainpanel.add (Qscroller); Mainpanel.add (Nextbutton); Nextbutton.addactionlistener (NewNextcardlistener ()); JMenuBar MenuBar=NewJMenuBar (); JMenu Filemenu=NewJMenu ("File"); JMenuItem Loadmenuitem=NewJMenuItem ("Load card Set"); Loadmenuitem.addactionlistener (NewOpenmenulistener ()); Filemenu.add (Loadmenuitem); Menubar.add (Filemenu); Frame.setjmenubar (MenuBar); Frame.getcontentpane (). Add (Borderlayout.center, Mainpanel); Frame.setsize (640, 500); Frame.setvisible (true); } Public classNextcardlistenerImplementsActionListener { Public voidactionperformed (ActionEvent ev) {if(isshowanswer) {Display.settext (Currentcard.getanswer ()); Nextbutton.settext ("Next Card"); Isshowanswer=false; } Else { if(Currentcardindex <cardlist.size ()) {Shownextcard (); } Else{Display.settext ("That's last card"); Nextbutton.setenabled (false); } } } } Public classOpenmenulistenerImplementsActionListener { Public voidactionperformed (ActionEvent ev) {jfilechooser FileOpen=NewJFileChooser (); Fileopen.showopendialog (frame); LoadFile (Fileopen.getselectedfile ()); } } Private voidloadFile (file file) {cardlist=NewArraylist<quizcard>(); Try{BufferedReader Reader=NewBufferedReader (Newfilereader (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 voidMakecard (String linetoparse) {string[] result= Linetoparse.split ("/"); Quizcard Card=NewQuizcard (Result[0], result[1]); Cardlist.add (card); System.out.println ("Made a card"); } Private voidShownextcard () {Currentcard=Cardlist.get (Currentcardindex); Currentcardindex++; Display.settext ("Show Answer"); Isshowanswer=true; }}
All of a sudden, I found some sense of java.