ورود

View Full Version : سوال: سفید شدن فرم ها در زمان اجرا



Amin1991-2012
چهارشنبه 19 آذر 1393, 18:17 عصر
سلام دوستان

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

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

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

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

Amin1991-2012
پنج شنبه 20 آذر 1393, 19:21 عصر
دوستان کسی نیست به بنده جواب بده؟ تا حالا به مشکل بنده برنخوردین؟کدم مشکلی نداره، فقط بعضی وقت های اینجوری میشه.اونم فک کنم سیستم نمیکشه ونمیتونه فرمو نشون بده.


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


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

دوستان کسی نظری نداره؟

ahmad.mo74
پنج شنبه 20 آذر 1393, 19:33 عصر
سلام، نه عزیز من به کم آوردن سیستم ربطی نداره!

چنتا احتمال هست، یک اینکه فرم هات رو از توی EDT ران نکردی یعنی اینجوری :


EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new MyFrame().setVisible(true);
}
});


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

یا اینکه دیالوگ ها رو modal کردی و درست ازشون استفاده نکردی، بیشتر هم احتمال میدم مشکل از اینجا باشه چون وقتی میگی سفید میشه یعنی انگار یه جایی deadlock اتفاق افتاده...

باز اگر بتونی یه بخش از کدت رو بذاری بهتر میشه تشخیص داد :)

Amin1991-2012
جمعه 21 آذر 1393, 06:12 صبح
ممنون از توجهتون.فرم اولمو از تو 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.ja va:458)
at java.awt.image.DirectColorModel.createCompatibleWr itableRaster(DirectColorModel.java:1015)
at sun.awt.image.SunVolatileImage.getBackupImage(SunV olatileImage.java:214)
at sun.awt.image.VolatileSurfaceManager.getBackupSurf ace(VolatileSurfaceManager.java:247)
at sun.awt.image.VolatileSurfaceManager.initialize(Vo latileSurfaceManager.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.j ava:3206)
at java.awt.Component$BltBufferStrategy.createBackBuf fers(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:2 957)
at javax.swing.BufferStrategyPaintManager$BufferInfo. createBufferStrategy(BufferStrategyPaintManager.ja va:858)
at javax.swing.BufferStrategyPaintManager$BufferInfo. createBufferStrategy(BufferStrategyPaintManager.ja va:815)
at javax.swing.BufferStrategyPaintManager$BufferInfo. getBufferStrategy(BufferStrategyPaintManager.java: 738)
at javax.swing.BufferStrategyPaintManager.prepare(Buf ferStrategyPaintManager.java:513)
at javax.swing.BufferStrategyPaintManager.paint(Buffe rStrategyPaintManager.java:271)
at javax.swing.RepaintManager.paint(RepaintManager.ja va:1132)
at javax.swing.JComponent._paintImmediately(JComponen t.java:5052)
at javax.swing.JComponent.paintImmediately(JComponent .java:4862)
at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:727)
at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:683)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Re paintManager.java:663)
at javax.swing.SystemEventQueueUtilities$ComponentWor kRequest.run(SystemEventQueueUtilities.java:128)
at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 597)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:273)
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space





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

ahmad.mo74
جمعه 21 آذر 1393, 09:58 صبح
یا خدا !!! چیکار کردین مگه؟
یه ضرب المثلی هست میگه که "حرف زدن بی فایدست، کدت رو نشون بده" :)

dasssnj
جمعه 21 آذر 1393, 10:52 صبح
عکس با سایز و حجم بالا لود کردی ؟

Amin1991-2012
جمعه 21 آذر 1393, 12:48 عصر
بابا کدش خیلی زیاده! ولی سعی میکنم یکی از فرم هایی که فرمش زیاد نیستو بذارم.

عکس زیاد لود کردم ولی هیچکدومش حجمش بالا نیست.همه عکسام روی هم دو مگابایت هم نمیشن!!!

هردفه این صفحه سفید میاد، حدود ده بار خطای بالا تکرار میشه.ینی به محض اینکه این صفحه سفید میاد، ده بار کد خطای بالا تکرار میشه!!!