تالار گفتمان مانشت

نسخه‌ی کامل: سفید شدن فرم ها در زمان اجرا - جاوا
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان

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

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

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

پیشاپیش از کمکتون تشکر میکنم.
بدون دیدن کد که نمیشه فهمید مشکل از کجاست. فایل زیپ پروژه رو بفرست
(20 آذر 1393 07:35 ب.ظ)mfXpert نوشته شده توسط: [ -> ]بدون دیدن کد که نمیشه فهمید مشکل از کجاست. فایل زیپ پروژه رو بفرست

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

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

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

نمیدونم مشکلش چیه، نه خطایی میده ونه کد مشکلی داره.یه جورایی انگار سیستم کم میاره!!!
برای چنین برنامه هایی سی شارپ بهتره تا جاوا. هم سریع تر میشه نوشت و هم احتیاجی به jre نیست.
(20 آذر 1393 09:05 ب.ظ)M.Amin.M نوشته شده توسط: [ -> ]
(20 آذر 1393 07:35 ب.ظ)mfXpert نوشته شده توسط: [ -> ]بدون دیدن کد که نمیشه فهمید مشکل از کجاست. فایل زیپ پروژه رو بفرست

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

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

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

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

بازم از اینکه وقت میگذارید و جواب میدید تشکر میکنم.
سایز هیپ رو زیاد کنید ببینید بازم استثنا میده.
(21 آذر 1393 11:54 ق.ظ)blackhalo1989 نوشته شده توسط: [ -> ]سایز هیپ رو زیاد کنید ببینید بازم استثنا میده.

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

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

java -Xms512m -Xmx4g HelloWorld مقدار مینیمم هیپ رو 512 مگ و مقدار ماکزیممش رو 4گیگ میذاره. اگر سیستم عامل 32 بیتی باشه بر حسب نوع سیستم عامل یه سری محدودیت ها رو اعمال میکنه.
(21 آذر 1393 04:08 ب.ظ)blackhalo1989 نوشته شده توسط: [ -> ]java -Xms512m -Xmx4g HelloWorld مقدار مینیمم هیپ رو ۵۱۲ مگ و مقدار ماکزیممش رو ۴گیگ میذاره. اگر سیستم عامل ۳۲ بیتی باشه بر حسب نوع سیستم عامل یه سری محدودیت ها رو اعمال میکنه.

تشکر از جوابتون، من متوجه نمیشم! میشه یکم ساده تر توضیح بدین؟
کجاشو توضیح بدم؟
(21 آذر 1393 05:10 ب.ظ)M.Amin.M نوشته شده توسط: [ -> ]
(21 آذر 1393 04:08 ب.ظ)blackhalo1989 نوشته شده توسط: [ -> ]java -Xms512m -Xmx4g HelloWorld مقدار مینیمم هیپ رو ۵۱۲ مگ و مقدار ماکزیممش رو ۴گیگ میذاره. اگر سیستم عامل ۳۲ بیتی باشه بر حسب نوع سیستم عامل یه سری محدودیت ها رو اعمال میکنه.

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

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

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