בעיה בתפריט שאני בונה ב java

AKAKAK

New member
בעיה בתפריט שאני בונה ב java

import java.awt.*; import java.awt.event.*; public class MenuFrame extends Frame { public MenuFrame() { super("Menu test"); MenuBar mb=new MenuBar(); Menu game=new Menu("game"); game.add(new MenuItem("play")); game.add(new MenuItem("exit")); mb.add(game); setMenuBar(mb); setSize(200,200); } public void actionPerformed(ActionEvent ev) { String arg=ev.getActionCommand(); if (arg.equals("exit")) public void windowClosing(WindowsEvent ev) { System.exit(0); } } public static void main(String[] args) { MenuFrame f=new MenuFrame(); f.show(); } }​
בעיה אם תנאי ה if ה זה:
public void windowClosing(WindowsEvent ev) { System.exit(0); }​
אני עובד עם קומפיילר netbeans,אם זה יצביע על הבעיה ויעזור בהבנתה.
 

uribraun

New member
אתה לא יכול לשים מתודה בתוך תנאי If

לא מובן לי למה אתה עוטף את
System.exit(0);​
במתודה WindowClosing שהיא בכלל מתודה של ממשק האזנה לחלונות,זה לא חוקי ולא יעבוד לך- אי אפשר להכניס מתודה לתוך תנאי. תשנה את הקוד כך ולא תהיה לך בעיה:
if (arg.equals("exit")) { System.exit(0); }​
הכי פשוט שאפשר!
 

AKAKAK

New member
או קיי אבטל את המטודה

WindowClosing שמתי את זה,כי לא רשמתי עד היום תפריטים או דברים מסובכים,רק מחשבון אחד ב java. מכל טעות לומדים,תודה על העזרה.
 

AKAKAK

New member
או קיי זה עבד,עכשיו קמפלתי ויצא

תקין,אז אמרתי לו לבנות את הקובץ java,שום קובץ הרצה אחרי שיצרתי,לא נוצר,בתקייה של הקובץ java שבניתי ולמה אין לי תגובה ל exit,שיסגור את התוכנית,בתפריט בזמן ההרצה מדומה,שהגדרתי?
 

uribraun

New member
ג'אווה לא יוצר קובץ הרצה אלא class

ואת קבצים אלו מריצים באמצעות JAVA, למשל c:/java myprog.class (צריך כמובן שיהיה מוגדר לך PATH לספריית BIN של ה ג'אווה) בקשר לשאלתך למה לא קורה כלום שאתה לוחץ על התפריט זה מכיוון שלא ביקשת שהכפתור יאזין לפעולות: מה שחסר לך זה הקוד:
import java.awt.*; import java.awt.event.*; public class MenuFrame extends Frame implements ActionListener { public MenuFrame() { super("Menu test"); MenuBar mb=new MenuBar(); Menu game=new Menu("game"); MenuItem play=new MenuItem("play"); play.addActionListener(this); game.add(play); MenuItem exit=new MenuItem("exit"); exit.addActionListener(this); game.add(exit); mb.add(game); setMenuBar(mb); setSize(200,200); }​
ואז שני הכפתורים מאזינים לפעולות ומגיבים לפי מטודות הפעולות של המחלקה הזו (זה הTHIS של ה ADDACTIONLISTENER) אני חושב שכדאי לך להשיג ספר לימוד בג'אווה,יהיה לך קשה ללמוד כך.
 

AKAKAK

New member
יש לי חומר מהמכללה על המחשב ומודפס

כמאט את כל מה,שאני צריך בשביל משחק איקס עיגול. עכשיו שאלה נוספת,איך אני מכין עם grid טופס כזה:
********* ***###*** ***###*** ***###*** *********​
איך לעשות רק ככה:
### ### ###​
את זה אני יודע,איך לעשות עם שיטת grid. מיקרא: #=מכיל ריבוע,שעליו יצוייר או איקס או עיגול *=מקום בלי כלום שאלה נוספת,היא את תכנות המשחק לבנות באותו קובץ,שעכשיו אני עובד אליו או אחר? שאלה נוספת אחרי,שגמרתי להכין את המשחק,איך אני יכול לשחק בו בלי תוכנת גאווה או קומפיילר גאווה,כמו משחק שהכנתי בויבי או c או c++?
 

AKAKAK

New member
איזה קובץ יורש את השני?

יש קובץ תפריט,כפי,שאתם כבר יודעים והיום התחלתי לעבוד על קובץ המשחק אצמו,שיש בו את הגדרת שני המשתמשים במשחק ומערך הריבועים ותכנות הגרפי של איקס עיגול ופעולות העכבר או,שהם יורשים מקובץ אחר,כמו main שמפעיל את שניהם?
 

AKAKAK

New member
פתרתי את הבעיה

הזזתי את המערך של המערך והשחקנים לתפריט והורשתי את זה,לקובץ המשחק.
 

AKAKAK

New member
איך יוצרים לולאה פעילה?

הכוונה היא ללולאה,שתבדוק אם יש שלושה x או o,זאת הכוונה,באיזה מתודה להשתמש? גם באיזה קובץ אני שם אותה,עם המשתנים או הקובץ שיורש אותם?
 

AKAKAK

New member
בעיה עם שורה שלא תקינה ולא הצלחתי

לתקן את השורה:
public class MenuFrame extends Frame implements ActionListener { char [][] board= new char [3][3]; String player1= ""; String player2= ""; int i,j; MenuFrame [] [] buttons = new MenuFrame[3][3]; public MenuFrame() { super("X/0"); MenuBar mb=new MenuBar(); Menu game=new Menu("game"); MenuItem play=new MenuItem("play"); play.addActionListener(this); game.add(play); MenuItem exit=new MenuItem("exit"); exit.addActionListener(this); game.add(exit); mb.add(game); setMenuBar(mb); setSize(200,200); for (i=0;i<3;i++) { for (j=0;j<3;j++) { buttons [j ]= new MenuFrame (" "); } } }

השורה הבעייתית:
buttons [j ]= new MenuFrame (" ");

מה הבעיה בשורה ולמה?
 
למעלה