الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Quiz Cards

بدأه محــمد في 28 فبراير 2010 · 8 رد · 531 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحباً يا اصحاب

ما علّة هذا البرنامج اللعين..

البرنامج عباره عن 3 اقسام:

* بناء ملفات فلاشيه .. QuizCardBuilder

*مكان الحفظ.. QuizCard

*مشغل الفلاشات.. QuizCardPlayer

هذه الصوره تقدم شرح مختصر عن وظيفة كل قسم

vhC80833.jpg

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 من الكتاب

هذا ما في جعبتي.. اتمنى تطيحون على العلّه

شكراً لكم عليكم

تم تعديل هذه المشاركة بواسطة محمد_ح في 1 مارس 2010 في 19:00

نداء ما كان بعيداً

#2

يااااا قوم.. اين ابطالكم ؟!

أما من ناصر ينصرنا..

أما من معين يعيننا..

أما من ذابٍ يذبُ عنا..

ولا انتهى عصر الفروسيه ؟!

نداء ما كان بعيداً

#3

عندما تتكلم بالعربي في منتدى عربي تجد من يساعدك بشكل أكبر

لذا أعد صياغة المشكلة بشكل متأني وبلغة واضحة

وحاول أن توجز الموجود في الصورة بلغة إنجليزية بنص عربي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

امممممم ... طيب

مع ان نص العالم تتكلم انقليزي هنا :sleep:

QuizCardBuilder

يقوم بعرض نافذه "بطاقه" تحتوي على 2 textArea " خانة السؤال , وخانة الجواب "

هذا البرنامج لإنشاء البطاقات..

يعطيك خاصية كتابة السؤال.. كتابة الجواب.. وخاصية الحفظ من ايقونة file...saveFile

_______

QuizCard

هو المكان الذي تحفظ فيه البطاقات..

_______

QuizCardPlayer

هو البرنامج المشغل..

يسألك عن اي بطاقه تريد تشغيلها من ايقونة.. file... openFile

يتصل بـ QuizCard ويشغل البطاقه المختاره

نداء ما كان بعيداً

#5

أرني النصف الذي يتكلم إنجليزي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

انت مو جاي تقدم مساعده

انت جاي تصفي حسابات

ولو اني اهتم لهذا.. لقلبتها بلبله

لكن اقول .. امضِ في ما جئت له يا بطل

:cool:

نداء ما كان بعيداً

#7

يا أخي محمد_ح , يا أخي هداك الله, كلنا هنا لمساعتدك و مساعدة أهل المنتدي الكرام.

لا أحد يريد أن يصفي حساب معك, بل كلنا في خدمتك, فقط ما عليك هو أن توضح سؤالك, و تضع محاولاتك و إن شاء الله ستجد من يساعدك

#8

عزيزي

ماهي هذه الحزمة ( اعتقد انها غير صحيحة)

import javax.io.*;

في الصنف QuizCardPlayer

يوجد خطاء

private void makeCard(String lineToParae) {
        String[] result = lineToParae.split("/");
        cardList.add(card); // لم تقم بتعريف المتغير car
        System.out.println("made a card");
    }
#9

مغلق يومين حتى نصفي الحسابات

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة