السلام عليكم
وقعت في مشكل فلم أعرف كيف حل
هو أنني أريد إضافة jscrollbar إلى JInternalFrame بحيث أني وجدت كود كيفية إضافة jpanel ولكن أنا أريد لل jframe
وهاهي صورة jframe
أرجو مساعدة و شكرا
السلام عليكم
وقعت في مشكل فلم أعرف كيف حل
هو أنني أريد إضافة jscrollbar إلى JInternalFrame بحيث أني وجدت كود كيفية إضافة jpanel ولكن أنا أريد لل jframe
وهاهي صورة jframe
أرجو مساعدة و شكرا
بالنسبة للــ JInternalFrame يمكنك ان تضيف الــ scrollbar باستخدام دالة add()
ولكن للتحكم بالتنسيق يجب ان تعمل GroupLayout
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

هذه المشكله هى نفس المشكله التى بهذا الموضوع
انا حليتها قبل كدا ممكن حضرتك تشوفها
بالتوفيق ان شاء الله
مشكل هي أني لا أريد إستخدام jpanel للأن مشروع كاملا بني على jframe بحيث إذا قمت بتغير سيكلفني ذلك كثير
ولهذا أريد إضافة JScrollBar مباشرة في jframe
اولا لا يكلفك ذلك كثير ولا شىء
ثانيا لا يسمح لك ان تضع الـ ScrollPane على الـFrame
مباشره بدون Panel
بمعنى اصح هيلقى لك خطأ
java.lang.IllegalArgumentException: adding a window to a container
فبالتالى لازم تعملها على Panel وتجعل الـ panel هى الـ Scroll
بالتوفيق
طيب سؤال أخي
هل من الممكن اضافة ScrollPane الى صندوق حوار JOptionPane بحيث يبقى حجم صندوق الحوار ثايتا مهما كان المحتوى كبيرا ويتم التحريك باستخدام الـ ScrollPane
انا جربت وما مشي الحال
إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ
رسم المخططات البيانية بواسطة الجافا
كتاب تحليل وتصميم نظم المعلومات
لا اعلم صراحه هل يمكن عملها مع الـ JoptionPane ولا لا
لكن اذا كنت تريد عمل ذلك فاصنع Dialog وافعل فيه ما تشاء
اعتقد ان ذلك هيكون سهل بالنسبه لك
اخي العزيز ارجو ان تنظر لهذا الكود
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package MyApp;
import javax.swing.*;
/**
*
* @author PSYCHO_ MANTIS
*/
public class Main extends JFrame {
private JInternalFrame internal ;
private JScrollBar bar ;
public Main() {
internal = new JInternalFrame();
bar = new JScrollBar();
internal.setVisible(true);
internal.add(bar);
GroupLayout layout = new GroupLayout(internal.getContentPane());
internal.getContentPane().setLayout(layout);
internal.setSize(150, 150);
internal.getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(bar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addContainerGap(233, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(bar, GroupLayout.DEFAULT_SIZE, 196, Short.MAX_VALUE)
);
GroupLayout layout2 = new GroupLayout(getContentPane());
getContentPane().setLayout(layout2);
layout2.setHorizontalGroup(
layout2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(GroupLayout.Alignment.TRAILING, layout2.createSequentialGroup()
.addContainerGap(88, Short.MAX_VALUE)
.addComponent(internal, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(52, 52, 52))
);
layout2.setVerticalGroup(
layout2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout2.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(internal)
.addGap(70, 70, 70))
);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Main app = new Main();
app.setVisible(true);
app.setSize(400,300);
app.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}يمكن تشوف الصورة مرفوعة مع الرد ، لا ادري ان كان هذا قصدك باضافة JScrollBar الى JInternalFrame من دون اضافة JPanel
تم تعديل هذه المشاركة بواسطة mental-driller في 13 مايو 2011 في 16:35
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

انت ذكرت الـ Frame وليس الـ InternalFrame
لكن الكود كدا تمام على الانترنال فريم
ايه المشكله ؟؟؟؟
Mahmoud Kelany كتب:انت ذكرت الـ Frame وليس الـ InternalFrame
لكن الكود كدا تمام على الانترنال فريم
ايه المشكله ؟؟؟؟
عفوا يا اخ محمود علشان بس ما يحصلش التباس ، مش انا اللي سألت الاخ اللي سأل في الاول كان بيقوال JInternalFrame بس بعد كده
لما بيدتوا تتكلموا على JFrame بديت اتخلبط ، فانا قدمت له الكود والصوره علشان بس تتضح الرؤيه واعرف له عاوز الJFrame ولا JInternalFrame
تم تعديل هذه المشاركة بواسطة mental-driller في 13 مايو 2011 في 17:00
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

اقتباس/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package MyApp; import javax.swing.*; /** * * @author PSYCHO_ MANTIS */ public class Main extends JFrame { private JInternalFrame internal ; private JScrollBar bar ; public Main() { internal = new JInternalFrame(); bar = new JScrollBar(); internal.setVisible(true); internal.add(bar); GroupLayout layout = new GroupLayout(internal.getContentPane()); internal.getContentPane().setLayout(layout); internal.setSize(150, 150); internal.getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(bar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap(233, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(bar, GroupLayout.DEFAULT_SIZE, 196, Short.MAX_VALUE) ); GroupLayout layout2 = new GroupLayout(getContentPane()); getContentPane().setLayout(layout2); layout2.setHorizontalGroup( layout2.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(GroupLayout.Alignment.TRAILING, layout2.createSequentialGroup() .addContainerGap(88, Short.MAX_VALUE) .addComponent(internal, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(52, 52, 52)) ); layout2.setVerticalGroup( layout2.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout2.createSequentialGroup() .addGap(23, 23, 23) .addComponent(internal) .addGap(70, 70, 70)) ); } /** * @param args the command line arguments */ public static void main(String[] args) { Main app = new Main(); app.setVisible(true); app.setSize(400,300); app.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } }
بارك الله فيك أخ mental-driller يبدو أن إجابة صحيحة فقط علي أن أجرب الكود وللعلم أنا أعمل على InternalFrame
و لكن أود أن أعرف كيف قمت بي إضافتها من نتبينز عشان تسهل علي شوي
وبارك الله فيك وشكرا
هل تفصد يعني باستخدام الفورم ؟ Form
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

Mahmoud Kelany كتب:لا اعلم صراحه هل يمكن عملها مع الـ JoptionPane ولا لا
لكن اذا كنت تريد عمل ذلك فاصنع Dialog وافعل فيه ما تشاء
اعتقد ان ذلك هيكون سهل بالنسبه لك
عفوا لم أفهم المقصد من كلامك
ما الذي تعنيه بالـ Dialog هل تعني صناديق الحوار JOptionPane.showMessageDialog ام تقصد شيء آخر
ان كنت تقصد ذلك فهذا كان سؤالي عنه وجربت ان أضيف jscrollbar ولم استطيع تحريك المحتوى
إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ
رسم المخططات البيانية بواسطة الجافا
كتاب تحليل وتصميم نظم المعلومات
قمت بتجريبها في نتبينز ولكن يبدو أنها لاتعمل يعني فقط موجودة ولكن لا تقوم بشئ
mohammeding كتب:قمت بتجريبها في نتبينز ولكن يبدو أنها لاتعمل يعني فقط موجودة ولكن لا تقوم بشئ
بالتأكيد الكود الذي كتبته لك يقوم بعمل JFrame و JInternalFrame فقط ، الــ functionality انت الذي تضيفها اذا كان هذا
قصدك، اذا كنت تعني شيئ اخر الرجاء التوضيح. او على الاقل قل لي ماذا تريدها ان تعمل
مع اني استغرب لماذا قد تريد ان تقوم بكتابة الكود من الصفر الا اذا كان لغرض التدريب، فالمعروف انك ستقوم بعمل Desktop Application من
Netbeans في العادة.
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

اقتباسالتأكيد الكود الذي كتبته لك يقوم بعمل JFrame و JInternalFrame فقط ، الــ functionality انت الذي تضيفها اذا كان هذاقصدك، اذا كنت تعني شيئ اخر الرجاء التوضيح. او على الاقل قل لي ماذا تريدها ان تعمل
مشكل هو لدي JInternalFrame محدودة size يعني 926*626
و أريد أن أضيف JScrollBar لل InternalFram بتاعي يعني عندما يقوم المستخدم بالرسم 2D تكون لديه مساحة كبيرة للرسم
وجدت حلول لل jpanel و لكن المشروع بني على InternalFram يعني صعب تبديل كود من جديد لأنه متعلق بأحداث الموس و الكيبورد
في هذه الحالة انا اتفق مع كلام الاستاذ محمود في السابق لانك سوف تقوم بتحديث الرسم باستخدام paintComponent() ، اعتقد انه يجب عليك اما استخدام JPanel
او احتفظ بالمشروع القديم ، وانشأ مشروع Java Desktop Application وبعد ان ترسم على الفورم (لن يأخذ منك وقت كثير لانك باختصار راح ترسم مش تكتب كود)
ثم اضف الاكواد القديمة في الاماكن المناسبة (يعني copy & paste)
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

صراحة استفدت من هذا الموضوع