سؤال

لماذا لا تظهر ال MenuBar على ال Frame ؟

import java.awt.Dimension;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;public class MenuBar_example extends JFrame {    private JMenu File_Menu, Help_Menu;    private JMenuBar MenuBar;    private JButton b1, b2, b3;    public MenuBar_example() {        dome();    }    private void dome() {        setVisible(true);        setSize(new Dimension(400, 300));        setLayout(null);        setTitle("Menu example");        setLocationRelativeTo(null);        setDefaultCloseOperation(EXIT_ON_CLOSE);        b1 = new JButton("New");        b2 = new JButton("Open");        b3 = new JButton("Exit");        File_Menu = new JMenu("File");        Help_Menu = new JMenu("Help");        File_Menu.add(b1);        File_Menu.add(b2);        File_Menu.add(b3);        MenuBar = new JMenuBar();        MenuBar.setBounds(0, 0, getWidth(), 30);        MenuBar.add(File_Menu);        MenuBar.add(Help_Menu);        add(MenuBar);    }}
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

11 إجابة على هذا السؤال .

  • 0

 

لماذا لا تظهر ال MenuBar على ال Frame ؟

لأنك قمت بإظهار النافذة قبل أن تقوم بأي عمل.

 

ملاحظات سريعة على الكود تبعك :

  1. الـ items يُفضل أن تكون كائنات من نوع JMenuItem و ليست JButton.
  2. لا أدري لماذا استخدمت القيمة null مع setLayout !
  3. لإضافة الـ MenuBar إلى الـ frame استخدم الدالة setJMenuBar.

 

الكود بعد التصحيح :

import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;public class MenuBar_example extends JFrame {    private JMenu File_Menu, Help_Menu;    private JMenuBar MenuBar;    private JMenuItem menu_item1, menu_item2, menu_item3;    public MenuBar_example() {        dome();    }    private void dome() {        menu_item1 = new JMenuItem("New");        menu_item2 = new JMenuItem("Open");        menu_item3 = new JMenuItem("Exit");        File_Menu = new JMenu("File");        Help_Menu = new JMenu("Help");        File_Menu.add(menu_item1);        File_Menu.add(menu_item2);        File_Menu.add(menu_item3);        MenuBar = new JMenuBar();        MenuBar.setBounds(0, 0, getWidth(), 30);        MenuBar.add(File_Menu);        MenuBar.add(Help_Menu);        setJMenuBar(MenuBar);        setTitle("Menu example");        setSize(new Dimension(400, 300));        setLocationRelativeTo(null);        setVisible(true);        setDefaultCloseOperation(EXIT_ON_CLOSE);    }    public static void main(String... args) {        new MenuBar_example();    }}

بالمناسبة، هل تمت إجابتك في هذين الموضوعين ؟

مشكلة في مثال تشفير

مشكلة في مثال القراءة من الملفات

على الأقل أود أن أعرف هل استطعت مُساعدتك أم لا :)

تم تعديل بواسطه Snack3r
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالمناسبة، هل تمت إجابتك في هذين الموضوعين ؟


 


مشكلة في مثال تشفير

مشكلة في مثال القراءة من الملفات

على الأقل أود أن أعرف هل استطعت مُساعدتك أم لا :)

مثال القراءة في الملفات إشتغل الكود الخاص بي ولكن ليس كما توقعت ، لا يقرأ العربي و أيضاً مشاكل بالتنسيق مع إني ضابط التنسيق

مثال التشفير نسخته كما هو ولكن لم أستطع فهمه ، وعندما أكتب أي كلمة مثلاً Snack3r يعطي إستثناءات !

الصراحة خجلت أن أسألك عن تفاصيل في نفس المواضيع مرة آخرى لأني أعتقد إنك لا تحب التفصيل في الشرح :blush: كلما تقدمت في اللغة إزدادت صعوبتها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أولا، هل لا زالت لديك مشاكل في كود هذا الموضوع ؟

أنا هنا لمساعدتك :)

 

 

مثال القراءة في الملفات إشتغل الكود الخاص بي ولكن ليس كما توقعت ، لا يقرأ العربي و أيضاً مشاكل بالتنسيق مع إني ضابط التنسيق

كنت أتوقع مشكلة التنسيق، استبدل الدالة ReadFile بهذه :

public void ReadFile(File f) {        try {            FileReader fichier = new FileReader(f);            BufferedReader buffer = new BufferedReader(fichier);            String ligne_lue = buffer.readLine();            StringBuilder texte = new StringBuilder();            while (ligne_lue != null) {                texte.append(ligne_lue).append("\r\n");                ligne_lue = buffer.readLine();            }            ta.setText(texte.toString());            buffer.close();            fichier.close();        } catch (FileNotFoundException ex) {            System.out.println("Fichier introuvable !");        } catch (IOException ex) {            System.out.println("Erreur d'entrée-sortie !");        }    }

و قم بمناداتها هكذا :

File f = fc.getSelectedFile();ReadFile(f);

بهذه الطريقة ستحل مشاكل التنسيق.

بالنسبة للحروف العربية، أعتقد أن الكود تبعك يقرأها دون مشاكل، انظر الصورة :

post-219439-0-74756800-1415189346.jpg

 

 

 

مثال التشفير نسخته كما هو ولكن لم أستطع فهمه

إن لم تستطع فهمه في بداية الأمر فهذا شيء طبيعي لأنني استخدمت فيه أموراً متقدمة في التشفير لكن مع مرور الوقت و المطالعة ستفهم الكود بشكل جيد و يُمكنني أن أشرح لك الكود سطراً سطراً (إن أردت ذلك، اكتب مشاركة في موضوع التشفير هناك حتى لا نُخرج هذا الموضوع عن إطاره)

 

 

عندما أكتب أي كلمة مثلاً Snack3r يعطي إستثناءات !

 

توقعتُ ذلك لأنني استخدم مكتية Bouncy Castle للتشفير، لذا يجب عليك تثبيتها أولا.

لكن قل لي ما نوع الاستثناءات حتى أعرف سببها بالضبط.

 

 

الصراحة خجلت أن أسألك عن تفاصيل في نفس المواضيع مرة آخرى لأني أعتقد إنك لا تحب التفصيل في الشرح

ليس هكذا يا أخي الفاضل !

شوف عزيزي، انت كمبرمج سيأتي عليك يوم تواجه فيه مشاكلا و لن يكون Snack3r بجنبك لذا أنا أحاول قدر المستطاع أن أعلمك كيف تعتمد على نفسك و كيف تتعود على البحث عن التفاصيل بنفسك لأن الآخرين لن يكونوا بجنبك في كل وقت و يعلم الله أني ما فعلت هذا إلا لمصلحتك :)

 

 

كلما تقدمت في اللغة إزدادت صعوبتها

صحيح و هذا أمر طبيعي جداً !

لكن لا تستسلم وواصل التعلم، قريباً جداً ستجد أن المواضيع التي كانت بالأمس مُعقدة بالنسبة لك، أصبحت في غاية السهولة .. :)

تم تعديل بواسطه Snack3r
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أولا، هل لا زالت لديك مشاكل في كود هذا الموضوع ؟

أنا هنا لمساعدتك :)

لا تمام إشتغل معي ولكن أريد أن أفهم ما الفرق بين add(MenuBar) وبين setJMenuBar(MenuBar);  لأن في المثال الذي أطبق منه الشرح أضفها add و إشتغلت معه

 

كنت أتوقع مشكلة التنسيق، استبدل الدالة ReadFile بهذه :

public void ReadFile(File f) {        try {            FileReader fichier = new FileReader(f);            BufferedReader buffer = new BufferedReader(fichier);            String ligne_lue = buffer.readLine();            StringBuilder texte = new StringBuilder();            while (ligne_lue != null) {                texte.append(ligne_lue).append("\r\n");                ligne_lue = buffer.readLine();            }            ta.setText(texte.toString());            buffer.close();            fichier.close();        } catch (FileNotFoundException ex) {            System.out.println("Fichier introuvable !");        } catch (IOException ex) {            System.out.println("Erreur d'entrée-sortie !");        }    }

و قم بمناداتها هكذا :

File f = fc.getSelectedFile();ReadFile(f);

ظهرتلي بعض المشاكل الآخرى

 

 

FileReader02_zpsb2288354.png

 

إذا كان ظني صحيح فإنك أضفت ("\r\n") للتنسق ، أنا  أعرف \n مسبقاً و هي لنزول سطر جديد ولكن ما معنى \r ؟

 

إن لم تستطع فهمه في بداية الأمر فهذا شيء طبيعي لأنني استخدمت فيه أموراً متقدمة في التشفير لكن مع مرور الوقت و المطالعة ستفهم الكود بشكل جيد و يُمكنني أن أشرح لك الكود سطراً سطراً (إن أردت ذلك، اكتب مشاركة في موضوع التشفير هناك حتى لا نُخرج هذا الموضوع عن إطاره)

 

 

توقعتُ ذلك لأنني استخدم مكتية Bouncy Castle للتشفير، لذا يجب عليك تثبيتها أولا.

لكن قل لي ما نوع الاستثناءات حتى أعرف سببها بالضبط.

كيف أثبت المكتبة ؟

 

هذة الإستثناءات

java.security.InvalidKeyException: Illegal key size	at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1034)	at javax.crypto.Cipher.implInit(Cipher.java:800)	at javax.crypto.Cipher.chooseProvider(Cipher.java:859)	at javax.crypto.Cipher.init(Cipher.java:1370)	at javax.crypto.Cipher.init(Cipher.java:1301)	at JavaGUI01.TextEncryption.encrypt(TextEncryption.java:50)	at JavaGUI01.Main.main(Main.java:92)
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 

أريد أن أفهم ما الفرق بين add وبين setJMenuBar

 

add تقوم بإضافة الـ menubar كعنصر داخل النافذة و setJMenuBar تقوم بوضع الـ menubar في موقع شريط القوائم أعلى النافذة.

 

 

ظهرتلي بعض المشاكل الآخرى

لا حظ أنك لم تقم بتغيير مناداة الدالة في البلوك الخاص بالـ FileChooser لأن الدالة الجديدة تُعيد void.

 

 

إذا كان ظني صحيح فإنك أضفت ("\r\n") للتنسق ، أنا  أعرف \n مسبقاً و هي لنزول سطر جديد ولكن ما معنى \r ؟

\n هو الـ Line Feed و \r هو الـ carriage return. (اقرأ في ويكيبيديا عنهما للمزيد من التفاصيل)

بشكل عام، العودة إلى السطر تختلف باختلاف نظام التشغيل و الـ encoding، في Unix مثلا تتم العودة إلى السطر بـ \n فقط أما في الـ Windows فتتم العودة إلى السطر بـ \r\n.

 

 

هذة الإستثناءات

java.security.InvalidKeyException: Illegal key size	at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1034)	at javax.crypto.Cipher.implInit(Cipher.java:800)	at javax.crypto.Cipher.chooseProvider(Cipher.java:859)	at javax.crypto.Cipher.init(Cipher.java:1370)	at javax.crypto.Cipher.init(Cipher.java:1301)	at JavaGUI01.TextEncryption.encrypt(TextEncryption.java:50)	at JavaGUI01.Main.main(Main.java:92)

كما توقعت، لم يتم العثور على الـ Bouncy Castle Provider لأنه لم يتم تثبيته بعد !

راجع هذه المشاركة لمعرفة كيفية تثبيت المكتبة.

تم تعديل بواسطه Snack3r
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
لا حظ أنك لم تقم بتغيير مناداة الدالة في البلوك الخاص بالـ FileChooser لأن الدالة الجديدة تُعيد void.

عرفتها و مازال الخطأ عند الدالة public void ReadFile(File f) {

illegal start of expression

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ممكن أشوف الكود الكامل بعد التعديل ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ممكن أشوف الكود الكامل بعد التعديل ؟

package JavaGUI01;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import javax.swing.*;import javax.swing.filechooser.FileNameExtensionFilter;/** * * @author Muhammed_Pro */public class FileChooser01 extends JFrame {    JPanel p;    JTextArea ta;    public FileChooser01() {        p = new JPanel(new BorderLayout());        JToolBar tb = new JToolBar();        JButton b = new JButton("Open");        b.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                JFileChooser fc = new JFileChooser();                FileNameExtensionFilter ff = new FileNameExtensionFilter(".txt", "txt");                fc.addChoosableFileFilter(ff);                int er = fc.showDialog(p, "Open file");                if (er == JFileChooser.APPROVE_OPTION) {                    File f = fc.getSelectedFile();                    ReadFile(f);                }            }        });          public void ReadFile(File f) {        try {            FileReader fr = new FileReader(f);            BufferedReader buffer = new BufferedReader(fr);            String ligne_lue = buffer.readLine();            StringBuilder texte = new StringBuilder();            while (ligne_lue != null) {                texte.append(ligne_lue).append("\r\n");                ligne_lue = buffer.readLine();            }            ta.setText(texte.toString());            buffer.close();            fr.close();        } catch (FileNotFoundException ex) {            System.out.println("Fichier introuvable !");        } catch (IOException ex) {            System.out.println("Erreur d'entrée-sortie !");        }    }}
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لم تقم بإغلاق معكوف الـ constructor ! :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وبعد كل هذة التصحيحات و التعديلات لم يعمل الكلاس :angry:  كلاس نحس أنظر ههههه يا أخي الصورة لا يوجد أخطاء


 


FileReader03_zps6c9043a8.png


0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ركز قليلا، ماذا وضعت في الـ main ؟؟ :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .