مثال على كيفية استخدام JScrollPane

JScrollPane عبارة عن حاوية توفر القدرة على إنشاء تمرير أفقي أو رأسي أو كليهما في نفس الوقت عندما يتجاوز المكون المعروض حجم JFrame.

الكود لإنشاء شريط تمرير bar في java  بسيط جدا. الاستخدام الأكثر شيوعا هو JTextArea عن طريق إضافة جزء تمرير إلى لوحة .

< pre class = "prettyprint lang-java" >import javax.swing.JFrame ؛
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class JScrollPaneTest {

//20 صفا ، مربع نص مكون من 50 عمودا
JTextArea jta = JTextArea جديد (20 ، 50) ؛

JScrollPaneTest العام () {
JFrame f = JFrame الجديد ("JScrollPaneExample") ؛
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);

JScrollPane jsp = JScrollPane الجديد (jta) ؛
f.add (jsp ، BorderLayout.CENTER) ؛
f.pack ();
}

الفراغ العام الثابت الرئيسي (سلسلة [] args) {
JScrollPaneTest الجديد ();
}
}
< / pre> Output
إضافة JScrollPane إلى Jtextarea< / a>< / div>
ينشئ شريط التمرير أشرطة أفقية ورأسية إذا تجاوز النص أبعاد النافذة.

JScrollBar وJViewPort

A يجمع JScrollPane بين الفئتين JScrollBar et JViewPort et  يستخدم مثيل الأخير لإدارة الجزء المرئي للمستخدم. وهي مسؤولة عن الأبعاد وتحديد المواقع بناء على كل من المصاعد الرأسية والأفقية.

إليك الكود لاسترداد كل من أشرطة التمرير (الأفقية والعمودية):

< pre class = "prettyprint lang-java">JScrollBar vjsp = jsp.getVerticalScrollBar ();
JScrollBar hjsp = jsp.getHorizontalScrollBar();
< / pre>< / div>
يتم الوصول إلى إطار العرض بالطريقة getViewport().  < / i> في هذا المثال ، سنقوم بإضافة صورة إلى JScrollPane< / b > وتغيير موضع إحداثيات إطار العرض باستخدام النمط setViewPosition(Point p).

import java.awt.Point; 
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;

الفئة العامة JScrollPaneTest {

JScrollPaneTest العام () {

JFrame f = JFrame الجديد ("JScrollPaneExample") ؛
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setSize (300,300);

صورة ImageIcon = ImageIcon جديدة ("Fleur.jpg") ؛
JLabel pimage = JLabel الجديد ();
pimage.setIcon (صورة) ؛

JScrollPane jsp = JScrollPane الجديد (pimage) ؛
JViewport jvp = JViewport الجديد ();
jvp = jsp.getViewport();
jvp.setViewPosition (نقطة جديدة (30,200)) ؛
f.add(jsp);
}

الفراغ العام الثابت الرئيسي (سلسلة [] args) {
JScrollPaneTest الجديد ();
}
}
< / pre> Output

إضافة صورة إلى jscrollpane jviewport< / a>< / div>

تغيير الإعدادات< / h2>< / div>
إذا كانت النافذة واسعة على سبيل المثال ، يختفي الشريطان لأننا لن نحتاج إليها. إذا قمت بتقليل ارتفاع النافذة ، فسوف تظهر مرة أخرى. يتم التحكم في ذلك بواسطة سياسة لوحة التمرير لكل شريط.

يحتوي JScrollPane على منشئين يمنحانك اليد لتغيير الإعدادات في وقت الإنشاء:
  • JScrollPane(المكون c, int عمودي ، int أفقي) < / li>
  • JScrollPane (int عمودي ، int  أفقي) < / li>< / ul >
    يمكنك أيضا تغيير سياسة العرض للشريطين بعد الإنشاء باستخدام الطريقتين:  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >setHorizontalScrollBarPolicy ()< / span>,  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >setVerticalScrollBarPolicy ()< / span>.

    < / div>< / div>
    < td>VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER < / td >< td> scrollbars. < / td>< / tr>< / tbody>< / table>< / div>

    < / div>
    تتم إضافة العبارة التالية إلى التعليمات البرمجية لمثال JTextArea الأول مباشرة بعد JScrollPane:

    jsp.setVerticalScrollBarPolicy(jsp. VERTICAL_SCROLLBAR_ALWAYS) ؛ 
    < / pre> الإخراج:

    VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED هذه هي الحالة افتراضيا ، تظهر أشرطة التمرير وتختفي حسب الحاجة.
    VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS إظهار أشرطة التمرير دائما. سيتم دائما إخفاء أشرطة التمرير < / td>< / tr >