โรงงานชายแดน เป็น โรงงาน คลาสซึ่งมีเส้นขอบประเภทต่างๆ ใน Java
ประเภทของเส้นขอบ
- BevelBorder :เส้นขอบนี้วาด ยกขึ้น หรือ ลดลง ขอบเอียง
- EmptyBorder :ไม่วาดรูปแต่กินพื้นที่
- สลักขอบ :ขอบสลักล่าง ทำให้มีลักษณะเป็นสี่เหลี่ยมและขอบนูนแบบยกขึ้น ดูเหมือนพื้นผิวของหน้าจอ
- LineBorder :วาดสี่เหลี่ยมธรรมดารอบๆ ส่วนประกอบ เราสามารถระบุสีและความกว้างของเส้นใน LineBorder ตัวสร้าง
- MatteBorder :เราสามารถสร้าง MatteBorder ด้วยสีที่แน่นอนและระบุขนาดของเส้นขอบที่ซ้าย , บน ขวา และล่าง ของส่วนประกอบ MatteBorder ยังช่วยให้เราสามารถส่งไอคอนที่จะใช้ในการวาดเส้นขอบ นี่อาจเป็นรูปภาพ (ImageIcon) หรือการใช้งานอื่น ๆ ของ ไอคอน อินเทอร์เฟซ
- TitledBorder :เส้นขอบปกติที่มีชื่อเรื่อง A TitledBorder ไม่ได้วาดเส้นขอบจริงๆ มันแค่ดึงชื่อเรื่องร่วมกับวัตถุขอบอื่น เส้นขอบประเภทนี้มีประโยชน์อย่างยิ่งสำหรับการจัดกลุ่มชุดควบคุมต่างๆ ในอินเทอร์เฟซที่ซับซ้อน
- เส้นขอบส่วนประกอบ: เส้นขอบที่มีเส้นขอบอีกสองเส้นขอบ สิ่งนี้มีประโยชน์อย่างยิ่งหากเราต้องการใส่องค์ประกอบใน EmptyBorder แล้วใส่ของตกแต่งรอบๆ เช่น EtchedBorder หรือ MatteBorder .
ตัวอย่าง
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class BorderFactoryMain { public static void main(String[] args) { SwingUtilities.invokeLater(run); } static Runnable run = new Runnable() { @Override public void run() { BorderFactoryTest test; test = new BorderFactoryTest(); test.setVisible(true); } }; public static class BorderFactoryTest extends JFrame { public BorderFactoryTest() { setTitle("BorderFactory Test"); setSize(350, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new FlowLayout()); add(createBorderedPanel(BorderFactory.createRaisedBevelBorder(), "createRaisedBevelBorder()")); add(createBorderedPanel(BorderFactory.createBevelBorder(BevelBorder.LOWERED), "createBevelBorder(BevelBorder.LOWERED)")); add(createBorderedPanel(BorderFactory.createBevelBorder(BevelBorder.RAISED), "createBevelBorder(BevelBorder.RAISED)")); add(createBorderedPanel(BorderFactory.createCompoundBorder(BorderFactory. createBevelBorder(BevelBorder.RAISED),BorderFactory.createBevelBorder(BevelBorder.LOWERED)), "createCompoundBorder(RAISED, LOWERED)")); add(createBorderedPanel(BorderFactory.createEtchedBorder(), "createEtchedBorder()")); add(createBorderedPanel(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "createEtchedBorder(EtchedBorder.LOWERED)")); add(createBorderedPanel(BorderFactory.createEtchedBorder(EtchedBorder.RAISED), "createEtchedBorder(EtchedBorder.RAISED)")); add(createBorderedPanel(BorderFactory.createEtchedBorder(Color.lightGray, Color.yellow), "createEtchedBorder(Color.lightGray, Color.yellow)")); add(createBorderedPanel(BorderFactory.createLineBorder(Color.red), "createLineBorder(Color.red)")); add(createBorderedPanel(BorderFactory.createLineBorder(Color.blue, 5), "createLineBorder(Color.blue, 5)")); add(createBorderedPanel(BorderFactory.createDashedBorder(null), "createDashedBorder(null)")); setLocationRelativeTo(null); } } private static JPanel createBorderedPanel(Border b, String name) { JLabel label = new JLabel(name); JPanel panel = new JPanel(); panel.setBorder(b); panel.add(label); return panel; } }
ผลลัพธ์