مرحباً يا اصحاب
ما علّة هذا البرنامج اللعين..
البرنامج عباره عن 3 اقسام:
* بناء ملفات فلاشيه .. QuizCardBuilder
*مكان الحفظ.. QuizCard
*مشغل الفلاشات.. QuizCardPlayer
هذه الصوره تقدم شرح مختصر عن وظيفة كل قسم
QuizCardPlayer يعمل.. لكن وظيفته تشغيل الملفات المبنيه في QuizCardBuilder والمخزنه في QuizCard
لكنه لا يستطيع عمل شيء .. لأن QuizCardBuilder لايعمل
هذا هو الكود..
_______
import java.util.*;
import java.awt.event.*;
import javax.io.*;
import javax.swing.*;
import java.awt.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class QuizCardBuilder {
private JFrame frame;
private JTextArea question;
private JTextArea answer;
private ArrayList<QuizCard> cardList;
public static void main (String[] args) {
QuizCardBuilder builder = new QuizCardBuilder();
builder.go();
}
public void go() {
frame = new JFrame("QuizCardBuilder");
//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);
//panel.setBackground(Color.blue);
//panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JScrollPane qScroller = new JScrollPane(question);
qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
//panel.add(scroller);
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");
//aButton.addActionListtener(new ShowListener());
//panel.add(aButton);
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());
//JButton qButton = new JButton("next card");
//qButton.addActionListener(new cardListener());
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);
//frame.getContentPane().add(BorderLayout.CENTER, panel);
//frame.getContentPane().add(BorderLayout.CENTER, aButton);
}
// public class TextListener implements ActionListener {
// public void actionPerformed(ActionEvent event) {
// text.append("button clicked \n ");
// }
// }
// class ShowListener implements ActionListener {
// public void actionPerformed(ActionEvent event) {
// // add qButton
// }
// }
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 AWTEventListener {
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 q,String a) {
question = q;
answer = a;
}
public String getQuestion() {
return question;
}
public String getAnswer() {
return answer;
}
}
_______
import java.util.*;
import java.awt.event.*;
import javax.io.*;
import javax.swing.*;
import java.awt.*;
import java.io.BufferedReader;
public class QuizCardPlayer {
private JFrame frame;
private JTextArea display;
private JTextArea answer;
private ArrayList<QuizCard> cardList;
private QuizCard currentCard;
private int currentCardIndex;
private JButton nextButton;
private boolean isShowAnswer;
public static void main (String[] args) {
QuizCardPlayer reader = new QuizCardPlayer();
reader.go();
}
public void go() {
frame = new JFrame("QuizCardPlayer");
JPanel mainPanel = new JPanel();
Font bigFont = new Font("sanserif", Font.BOLD, 24);
display = new JTextArea(10,20);
display.setLineWrap(true);
display.setEditable(false);
display.setFont(bigFont);
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);
} //close go
public class NextCardListener implements ActionListener {
public void actionPerformed(ActionEvent ev) {
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 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("could't read the card file");
ex.printStackTrace();
}
showNextCard();
}
private void makeCard(String lineToParae) {
String[] result = lineToParae.split("/");
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;
}
}//close class
______
iملاحظه: QuizCard انا الي كاتبه.. اما Player و Builder من الكتاب
هذا ما في جعبتي.. اتمنى تطيحون على العلّه
شكراً لكم عليكم

