تالار گفتمان مانشت
سفید شدن فرم ها در زمان اجرا - جاوا - نسخه‌ی قابل چاپ

سفید شدن فرم ها در زمان اجرا - جاوا - M.Amin.M - 20 آذر ۱۳۹۳ ۱۰:۵۷ ق.ظ

سلام دوستان

من یک پروژه ی معمولی واسه مغازه بابام نوشتم و از چندتا فرم تشکیل شده.فرم اصلی برنامه ام از نوع JFram است و زیرفرم های آن از نوع JDialog است.در بعضی مواقع، یهو وقتی روی دکمه مربوط به فرمی کلیک میکنم تا اون فرم به نمایش در بیاد، اون فرم کامل سفید به نمایش در میاد و دکمه و محتوایات فرم نیستند.یک جورایی برنامه هنگ کرده، ولی دکمه های تایتل بار فعال هستند یعنی ضربدر رو بزنم فرمه بسته میشه و فرم قبلی به نمایش در میاد.

برنامه رو با جاوا و نت بینز نوشتم.پایگاه داده ام هم SQL Server است.

خیلی شدید به کمک نیاز دارم.امیدوارم منظورمو تونستم باشم رسونده باشم.

پیشاپیش از کمکتون تشکر میکنم.

سفید شدن فرم ها در زمان اجرا - mfXpert - 20 آذر ۱۳۹۳ ۰۷:۳۵ ب.ظ

بدون دیدن کد که نمیشه فهمید مشکل از کجاست. فایل زیپ پروژه رو بفرست

RE: سفید شدن فرم ها در زمان اجرا - M.Amin.M - 20 آذر ۱۳۹۳ ۰۹:۰۵ ب.ظ

(۲۰ آذر ۱۳۹۳ ۰۷:۳۵ ب.ظ)mfXpert نوشته شده توسط:  بدون دیدن کد که نمیشه فهمید مشکل از کجاست. فایل زیپ پروژه رو بفرست

ممنون از توجهت دوست خوبم

ولی یکی دو خط نیست که من بفرستم، فرم تو فرمه و چند کلاس داره و خیلی پیچیده اس.باید به پایگاه داده کانکت بشه و از اینجور حرفا.
تا حالا به مشکل بنده برنخوردین؟کدم مشکلی نداره، فقط بعضی وقت های اینجوری میشه.اونم فک کنم سیستم نمیکشه ونمیتونه فرمو نشون بده.

یه مثال میزنم.ببین یه فرم درست کردم که روش چهار تا کلیده.بعضی مواقع بازم میگم بعضی وقت ها وقتی روی هرکدام از دکمه ها کلیک میکنم فرم جدید باز میشه ولی سفیده.یعنی یه پنجره باز میشه که هیچی توش نیس.وقتی پنجره رو دوباره ببندی ،فرم قبلی به نمایش در میاد.

نمیدونم مشکلش چیه، نه خطایی میده ونه کد مشکلی داره.یه جورایی انگار سیستم کم میاره!!!

سفید شدن فرم ها در زمان اجرا - جاوا - blackhalo1989 - 20 آذر ۱۳۹۳ ۱۰:۴۴ ب.ظ

برای چنین برنامه هایی سی شارپ بهتره تا جاوا. هم سریع تر میشه نوشت و هم احتیاجی به jre نیست.

RE: سفید شدن فرم ها در زمان اجرا - جاوا - codin - 21 آذر ۱۳۹۳ ۰۴:۰۷ ق.ظ

(۲۰ آذر ۱۳۹۳ ۰۹:۰۵ ب.ظ)M.Amin.M نوشته شده توسط:  
(20 آذر ۱۳۹۳ ۰۷:۳۵ ب.ظ)mfXpert نوشته شده توسط:  بدون دیدن کد که نمیشه فهمید مشکل از کجاست. فایل زیپ پروژه رو بفرست

ممنون از توجهت دوست خوبم

ولی یکی دو خط نیست که من بفرستم، فرم تو فرمه و چند کلاس داره و خیلی پیچیده اس.باید به پایگاه داده کانکت بشه و از اینجور حرفا.
تا حالا به مشکل بنده برنخوردین؟کدم مشکلی نداره، فقط بعضی وقت های اینجوری میشه.اونم فک کنم سیستم نمیکشه ونمیتونه فرمو نشون بده.

یه مثال میزنم.ببین یه فرم درست کردم که روش چهار تا کلیده.بعضی مواقع بازم میگم بعضی وقت ها وقتی روی هرکدام از دکمه ها کلیک میکنم فرم جدید باز میشه ولی سفیده.یعنی یه پنجره باز میشه که هیچی توش نیس.وقتی پنجره رو دوباره ببندی ،فرم قبلی به نمایش در میاد.

نمیدونم مشکلش چیه، نه خطایی میده ونه کد مشکلی داره.یه جورایی انگار سیستم کم میاره!!!
سلام
من یادمه تو درس برنامه نویسی پیشرفته به این مشکل خورده بودیم.نه بحث هنگ کردن و نکشیدن سیستم نیست.در مورد توابع OnPaint و OnRepaint (اگر اسمشون رو درست نوشته باشم) تحقیق کنید کلید ماجرا اونجا بود اما بازم دقیق یادم نیست چه کار کردیم. اون "بعضی مواقعی" هم که گفتید علتش اینه که اگر یه سری از ملاحضات rendering رو در نظر نگیرین سیستم رندومی رندر می کنه و مشکلات ایجاد میشه...گاها اگر پنجره رو minimize کنید و دوباره بالا بیارید ممکنه رندر درست بشه...

سفید شدن فرم ها در زمان اجرا - جاوا - M.Amin.M - 21 آذر ۱۳۹۳ ۰۸:۰۰ ق.ظ

ممنون از توجهتون.فرم اولمو از تو EDT ران کرده ام.بقیه فرم های فرزند این فرم اولی میشن وخودشون به تنهایی ران نمیشن.الان دوباره انقد با برنامم ور رفتن تا به این مشکل برخورد.خطای زیر توی نت بینز نوشته شده. ازاونجایی که بنده هنوز مبتدی هستم نمیفهمم این پیام چیو میگه!

از اساتید محترم کمک میخوام.

پیام:
کد:
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
        at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
        at java.awt.image.Raster.createPackedRaster(Raster.java:458)
        at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.​java:1015)
        at sun.awt.image.SunVolatileImage.getBackupImage(SunVolatileImage.java:214)
        at sun.awt.image.VolatileSurfaceManager.getBackupSurface(VolatileSurfaceManager.jav​a:247)
        at sun.awt.image.VolatileSurfaceManager.initialize(VolatileSurfaceManager.java:103)​
        at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:66)
        at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:76)
        at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:87)
        at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:81)
        at sun.awt.windows.WComponentPeer.createVolatileImage(WComponentPeer.java:569)
        at java.awt.Component.createVolatileImage(Component.java:3206)
        at java.awt.Component$BltBufferStrategy.createBackBuffers(Component.java:3861)
        at java.awt.Component$BltBufferStrategy.<init>(Component.java:3806)
        at java.awt.Component$BltSubRegionBufferStrategy.<init>(Component.java:4062)
        at java.awt.Component.createBufferStrategy(Component.java:3452)
        at java.awt.Window.createBufferStrategy(Window.java:2957)
        at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStr​ategyPaintManager.java:858)
        at javax.swing.BufferStrategyPaintManager$BufferInfo.createBufferStrategy(BufferStr​ategyPaintManager.java:815)
        at javax.swing.BufferStrategyPaintManager$BufferInfo.getBufferStrategy(BufferStrate​gyPaintManager.java:738)
        at javax.swing.BufferStrategyPaintManager.prepare(BufferStrategyPaintManager.java:5​13)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:271​)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5052)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4862)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:727)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:683)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:663)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueU​tilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273​)
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space

بازم از اینکه وقت میگذارید و جواب میدید تشکر میکنم.

سفید شدن فرم ها در زمان اجرا - جاوا - blackhalo1989 - 21 آذر ۱۳۹۳ ۱۱:۵۴ ق.ظ

سایز هیپ رو زیاد کنید ببینید بازم استثنا میده.

RE: سفید شدن فرم ها در زمان اجرا - جاوا - M.Amin.M - 21 آذر ۱۳۹۳ ۰۲:۳۶ ب.ظ

(۲۱ آذر ۱۳۹۳ ۱۱:۵۴ ق.ظ)blackhalo1989 نوشته شده توسط:  سایز هیپ رو زیاد کنید ببینید بازم استثنا میده.

اول اینکه هیپ چیه؟البته تو جاوا منظورمه؟
بعد چجوری زیادش کنم؟

تشکر از توجهت.



سفید شدن فرم ها در زمان اجرا - جاوا - blackhalo1989 - 21 آذر ۱۳۹۳ ۰۴:۰۸ ب.ظ

java -Xms512m -Xmx4g HelloWorld مقدار مینیمم هیپ رو ۵۱۲ مگ و مقدار ماکزیممش رو ۴گیگ میذاره. اگر سیستم عامل ۳۲ بیتی باشه بر حسب نوع سیستم عامل یه سری محدودیت ها رو اعمال میکنه.

RE: سفید شدن فرم ها در زمان اجرا - جاوا - M.Amin.M - 21 آذر ۱۳۹۳ ۰۵:۱۰ ب.ظ

(۲۱ آذر ۱۳۹۳ ۰۴:۰۸ ب.ظ)blackhalo1989 نوشته شده توسط:  java -Xms512m -Xmx4g HelloWorld مقدار مینیمم هیپ رو ۵۱۲ مگ و مقدار ماکزیممش رو ۴گیگ میذاره. اگر سیستم عامل ۳۲ بیتی باشه بر حسب نوع سیستم عامل یه سری محدودیت ها رو اعمال میکنه.

تشکر از جوابتون، من متوجه نمیشم! میشه یکم ساده تر توضیح بدین؟

سفید شدن فرم ها در زمان اجرا - جاوا - blackhalo1989 - 21 آذر ۱۳۹۳ ۰۵:۱۱ ب.ظ

کجاشو توضیح بدم؟

RE: سفید شدن فرم ها در زمان اجرا - جاوا - mfXpert - 21 آذر ۱۳۹۳ ۰۷:۴۸ ب.ظ

(۲۱ آذر ۱۳۹۳ ۰۵:۱۰ ب.ظ)M.Amin.M نوشته شده توسط:  
(21 آذر ۱۳۹۳ ۰۴:۰۸ ب.ظ)blackhalo1989 نوشته شده توسط:  java -Xms512m -Xmx4g HelloWorld مقدار مینیمم هیپ رو ۵۱۲ مگ و مقدار ماکزیممش رو ۴گیگ میذاره. اگر سیستم عامل ۳۲ بیتی باشه بر حسب نوع سیستم عامل یه سری محدودیت ها رو اعمال میکنه.

تشکر از جوابتون، من متوجه نمیشم! میشه یکم ساده تر توضیح بدین؟

تو محیط نت بینز روی پروژه خودتون راست کلیک کنید و گزینه Properties رو انتخاب کنید. تو پنجره‌ای که باز میشه از سمت چپ گزینه Run رو انتخاب کنید. تو قسمت سمت راست تو قسمت VM Options عبارت زیر رو اضافه کنید.
کد:
-Xms512m -Xmx4g

بعید میدونم مشکل شما حتی با انجام این کار حل بشه.