کلاس MatteBorder

با استفاده از کلاس MatteBorder هم می توان یک خط به دور کنترل کشید و هم به جای خط می توان از آیکون استفاده کرد. به این نکته توجه کنید که قسمتی از فضای اصلی کنترل به وسیله خط یا آیکون اشغال می شود. سازنده این کلاس به روش های زیر مقدار دهی می شود :

MatteBorder(Icon)
MatteBorder(Inset,Color)
MatteBorder(Inset,Icon)
MatteBorder(top, left, bottom, right, Color)
MatteBorder(top, left, bottom, right, Icon)

برای درک عملکرد این کلاس به کد زیر توجه کنید :

  1: import java.awt.*;
  2: import javax.swing.*;
  3: import javax.swing.border.*;
  4: 
  5: public class FrameDemo 
  6: {
  7:     public static void main(String[] args) 
  8:     {
  9:         JFrame frame1 = new JFrame("Properties and Methods Demo");
 10:         frame1.setLayout(null);
 11:         JPanel panel1 = new JPanel ();
 12:         JPanel panel2 = new JPanel ();
 13:         
 14:         panel1.setBounds(60, 40, 200, 150);
 15:         panel1.setBackground(Color.LIGHT_GRAY);
 16:         
 17:         panel2.setBounds(270, 40, 200, 150);
 18:         panel2.setBackground(Color.LIGHT_GRAY);
 19:         
 20:         panel1.setBorder(new MatteBorder(10, 10, 10, 10, Color.GREEN));
 21:         
 22:         panel2.setBorder(new MatteBorder(new ImageIcon("C:\\FrameDemo\\icon.gif")));
 23:                 
 24:         frame1.add(panel1);
 25:         frame1.add(panel2);
 26:         
 27:         frame1.setSize(666 , 284);
 28:         frame1.setVisible(true);
 29:     }   
 30: }

در خطوط 18-9 کد بالا یک Frame ایجاد کرده و دو Panel با اندازه و پس زمینه یکسان به آن اضافه کرده ایم. مهمترین خطوط کد بالا خطوط 20 و 22 می باشند که در خط 20 یک خط سبز با پهنای 10 پیکسل به دور Panel اولی کشیده ایم. در خط 22 هم به جای خط از آیکون استفاده کرده ایم. آیکون را من از قبل در پوشه برنامه قرار داده ام. برنامه را اجرا و نتیجه را مشاهده کنید :
MatteBorder-class-in-java-swing-01