בעייה בהגדרת class ב java

AKAKAK

New member
בעייה בהגדרת class ב java

public class MenuFrame extends Frame implements ActionListener throws IOException​
למה שאני מוסיף את החלק הזה:
throws IOException​
ההגדרה אינה תקינה? חיפשתי בחומר ואני לא מוצא למה זה לא תקין. שאלה שנייה: שאני מגדיר את השורה התקינה בלי החלק הבעייתי:
public class MenuFrame extends Frame implements ActionListener​
אני מקבל שגיעה על שורה הזאת:
buttons [j ]= new MenuFrame (" ");

ניסיתי וחיפשתי ולא מצאתי למה זה לא תקין. אני לא יכול לגשת לעזרה של msdn און ליין,כנראה בגלל אחת ההגנות שיש על המחשב,ואין לי את ה msdn מותקן על המחשב. משהו יודע למה קורות בעיות אילו ולמה? כל עזרה תועיל,תודה מראש.
 

voguemaster

New member
תכו אותי בלומים ואלות! ../images/Emo6.gif

מה ניסית לעשות ? throws עבור מחלקה ??????? throws מיועד לפונקציות בלבד ! מחלקה לא יכול לזרוק חריגה. חריגה היא תוצאה *חריגה* של איזשהו בלוק של קוד. הדוגמא הכי פשוטה היא IOException כשמנסים לקרוא מקובץ. או NullPointerException שאומרת שניסית לעשות משהו על רפרנס ששווה ל-null.
 

AKAKAK

New member
מה שניסיתי לעשות פה זה

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

AKAKAK

New member
צודק טעות שלי,שמתי את במחלקה ולא

בפונקציה,אבל לא היה רשום לי בחומר,שאסור שזה יהיה ב class,תודה על העזרה בזה,עכשיו למדתי משהו חדש בנושא ולמה,שאני מציב שם את כפתורים זה לא תקין?
 

DadleFish

New member
חחחחחחחחחחחחחחחחחחח

יא ערפד מוהיקני מפוסל שכמוך
לומים ואלות? שרשראות ומכושים!
 
לגבי השורה שצרפת...../images/Emo26.gif

זה יעזור לראות את שאר הקוד... איך מוגדר buttons... מה הודעת השגיאה?...
 

AKAKAK

New member
סליחה,הנה הקוד:

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 (" "); } } }
 
לא קשור...../images/Emo26.gif

הגדרת ל-MenuFrame רק constructor אחד ריק:
public MenuFrame()​
ואז ניסית ליצור אובייקטים באמצעות קריאה ל-constructor שמקבל String:
buttons [j ]= new MenuFrame (" ");

הקומפיילר מן-הסתם לא אהב את זה...
 

AKAKAK

New member
כן הוספתי הגדרת מחרוזת וזה עבד

תודה,על העזרה. אין יותר,שגיעות,בפונקציה הזאת. תודה.
 

AKAKAK

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

public static void main(String[] args) { MenuFrame f=new MenuFrame(); f.show(); }​
השורה עם השגיעה,שנוצרה עקב התיקון של הכפתור
MenuFrame f=new MenuFrame();​
ניסיתי להוסיף ל
MenuFrame f=new MenuFrame(String str);​
לא עזר,למרות שככה הפונקציה עכשיו נקראת ומוחרזת:
public MenuFrame(String str)​
מה קרה בשינוי,שגרם לטעות,שעשיתי ולמה?
 

AKAKAK

New member
אין שגיעה רק x,ככה הקומפלייר הזה

אומר לי שיש לי,שגיעה בכתיבה,זה מראה את ה x בזמן הכתיבה ולא ריצה.
 

AKAKAK

New member
בעייה עם פונקציות לקליטת שם השחקנים

שניהן זהות רק,עם שם פונקציות שונות. אותה שורה רק בכל פונקציה יש שינוי קל מ-1 ל-2. השורה הלא תקינה מהפונקציה ה-1
this.player1=str1;​
והשורה הלא תקינה מהפונקציה ה-2
this.player2=str2;​
ניסיתי לבטל אחת ולראות,אם השניה תקינה אז וזאת שעדיין פעילה עדיין לא תקינה אפילו אם השניה בוטלה,הבעייה,היא באותה שורה בשני הפונקציות. הנה הקוד:
public static void enteruser1(String str1 ) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter your name: "); str1=br.readLine(); this.player1=str1; } public static void enteruser2(String str2 ) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter your name: "); str2=br.readLine(); this.player2=str2; }​
 

ronen10001

New member
שאלה על השאלה...

למה אתה לא עושה את זה על ידי שימוש בDialog ?
 
למעלה