الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة مع Scrollpane

بدأه abuoof في 18 أغسطس 2008 · 4 رد · 807 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

السلام عليكم

أريد عمل برنامج عبارة عن desktoppane وعند أختيار menuitem معين يظهر لي internalframeبه عدد كبير من الcomponantمما يودي لعدم ظهورها كلها وبالتالي أستخدمت scrollpaneأو scrollbarولكني فشلت فلم أستخدم أحدهم قبل ذلك

الآن بعد رؤيتكم للكود أريد مساعتكم في حل هذه المشكلة

وجزاكم الله خيراً

البرنامج عبارة عن كلاسان

الأول:-



import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class scrolltest extends JFrame{
JDesktopPane desk=new JDesktopPane();
JMenuBar bar=new JMenuBar();
JMenu file=new JMenu("file");
JMenuItem enter=new JMenuItem("item",'ا');

public scrolltest() {
super("desk");
file.add(enter);
bar.add(file);
setJMenuBar(bar);
this.add(desk);
enter.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent event )
{
panel p=new panel();
JInternalFrame frame=new JInternalFrame( "title", true, true, true, true);




JScrollPane sp=new JScrollPane(p);
getContentPane().add(sp);


add(sp);
frame.setPreferredSize( new Dimension( 150, 120) );
desk.add(frame);
frame.setVisible( true );
}}); }
public static void main (String args[]){
scrolltest frame =new scrolltest();
frame.setTitle("title");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);

frame.setVisible(true);
}}
package test;

الثاني:-


import javax.swing.*;
import java.awt.*;
public class panel extends JPanel{

JButton b1=new JButton("b");
JButton b2=new JButton("b");
JButton b3=new JButton("b");
JTextField t1=new JTextField();
JTextField t2=new JTextField();
JTextField t3=new JTextField();

public panel() {
setLayout(new GridLayout( 3,2));
add(b1);
add(b2);
add(b3);
add(t1);
add(t2);
add(t3);
}


}
package test;

الكلاسان موجودان بالمرفقات

حتي لا تقول الإدارة ما أستخدمت البحث

بحثت وقرأت عدد كبير من المواضيع وفشلت في النهاية :S

test.zip

مدونتي

برمجة وما يتبعها

#2

يا أخواني 29 ما في حد عارف الحل :excl:

لم اعتد هذا في الفريق العربي

حد يجاوبني لو حتي يقولي لهاش حل بس استريح :S

مدونتي

برمجة وما يتبعها

#3

أكيد هناك حل ،

هناك خطأ لديك في الكود ، داخل الحدث لـ enter :

panel p=new panel();
				   JInternalFrame frame=new JInternalFrame( "title", true, true, true, true);

	 JScrollPane sp=new JScrollPane(p);
	   getContentPane().add(sp);

	add(sp);
	 frame.setPreferredSize( new Dimension( 150, 120) );
	 desk.add(frame);
	frame.setVisible( true );

لماذا قمت بهذا الأمر :

  getContentPane().add(sp);
 add(sp);

أنت هكذا ستضيف sp الى الJFrame الحالي وليس للـ JInternalFrame ..

امسح هذين السطرين وأضف :

frame.add(sp);

أيضا :

frame.setPreferredSize( new Dimension( 150, 120) );

غيرها بـ :

frame.pack();

حتى يكون مناسب تماما لمحتوياته ، وليس بأبعاد كبيره أو صغيره ...

وسيعمل البرنامج :)

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#4

جزاكم الله خير

وأسأل الله ألا يحوجك لغيره

:ty:

مدونتي

برمجة وما يتبعها

#5

السلام عليكم اخي

لقد قمت ببعض التعديلات الطفيفة

ارجو ان يكون هو المطلوب - تجد التعديلات في المرفقات

تحياتي

java.rar

مواضيع مشابهة