Java swing and jar files

snogal

New member
Java swing and jar files

שלום וצהרים טובים, כתבתי תוכנית ב swing , בין היתר מחלקה הנורשת מ JApplet ללא שימוש ב Main (ההרצה של ה applet נראית שעובדת בסדר. את המתודה init כתבתי והיא זאת שאחראית על הבנייה של הממשק). הבעיה שלי היא כשאני מנסה ליצור jar של הפרוייקט. (אני מתכוון להריץ את התוכנית על מחשב ללא אקליפס). מצד אחד אני לא מצליח ליצור jar file לפרוייקט applet (היצירה של הקובץ נכשלת) כי אין לי main. מצד שני כשניסיתי לכתוב את main באותה מחלקה שקוראת ל init שכתבתי אני לא רואה את הממשק עולה. (אחרי יצירה של אובייקט , קראתי ישירות ל Init.) למישהו/י יש פתרון לאחת הבעיות? תודה רבה.
 

gewitter

New member
אפשר קוד?

נסה לקרוא כאן: http://java.sun.com/docs/books/tutorial/deployment/applet/index.html והאם אפשר לראות את קוד האתחול שלך? init ו-main.
 

snogal

New member
תודה על הפנייה

אני אתחיל לקרוא את המסמכים שרשומים שם בעקרון הקוד הוא משהו כזה
public class MainFrame extends JApplet implements ActionListener { private MainPanel mainPanel = null; public void init() { buildView(); ....... } public Container buildView() { setSize(300,250); mainPanel = new MainPanel(this, "panel"); add(mainPanel); return this; } ....... public static void main(String[] args) { MainFrame frame = new MainFrame(); frame.init(); }​
במידה ואני מריץ את התוכנית ישירות מהאקליפס ללא main (כלומר כ Java applet) אזי אני רואה את הממשק עולה, ומה שאני צריך שיתבצע אכן מתבצע כצפוי וכרצוי. כאשר אני מריץ את התוכנית באופן "רגיל" דרך ה main, אני רואה שהקריאות מתבצעות למתודות כמו שהיית מצפה, אבל שום ממשק לא עולה. [הבעיה היתה פחות חשובה לי אם הייתי מצליח ליצור קובץ הרצה ל applet. ניסיתי דרך קובץ html שיריץ את הframe אבל גם זה לא עבד] שוב תודה רבה.
 

gewitter

New member
הרגשתי

וזה מכיוון שלא בניתי Applet אף פעם, זה שבשביל להריץ רגיל, בלי סביבת עזר כמו דפדפן או eclipse, אתה צריך לנקוט בצעדים הרגילים של אפליקצית swing, וזה אומר ליצור JFrame ולקרוא ל- setVisible(true). אם אתה לא עושה את זה, ומנסה להריץ JAR כרגיל, פשוט לא תראה שום רכיבים גראפיים.
 

snogal

New member
כל כך ברור שהפתרון

יהיה פשוט מאד. (ורק אני לא אחשוב עליו). תודה רבה!
זה פתר בעיה אחת. עכשיו נותרה עוד בעיה אבל איתה אני כבר אסתדר. (תמיד הבעיות הכי פשוטות הן אלו שאני הכי מסתבך איתן) ושוב תודה רבה על העזרה.
 
למעלה