جافا - الشكل والمظهر
لجعل تطبيقنا يبدو أجمل ، تم تصميم بنية Swing لتغيير شكل ومظهر التطبيق أو واجهة المستخدم الرسومية عن طريق فصل كل مكون إلى فئتين مختلفتين: JComponent < / b> و ComponentUI< / b>. على سبيل المثال ، يحتوي كل مثيل من JList على تطبيق ListUI ملموس يرث من الفئة الفائقة ComponentUI.، استخدم الطريقة: UIManager.setLookAndFeel(LookAndFeel l) مع اسم فئة LookAndFeel كوسيطة.
بعد التغيير ، تحتاج إلى تحديث شجرة المكونات عن طريق استدعاء الطريقة سوينغويليتيز.updatecomponentTreeUI(الإطار);
مثال
في هذا المثال، نعلن عن ثابت LOOKANDFEEL الذي سيحتوي على إحدى القيم الصحيحة التالية: Metal، وSystem، Pattern، وGTK. يعمل هذا الرمز تحت Eclipse و Netbeans.
import javax.swing.*;
import java.awt.*;
الطبقة العامة LookAndFeelTest يمتد JFrame {
العامة LookAndFeelTest () {
// تهيئة lookandfeel
initLookAndFeel ();
// تأكد من تطبيق التعلم
JFrame.setDefaultLookAndFeelDecorated(true);
// إنشاء وتكوين النافذة
إطار JFrame = JFrame الجديد ("SwingApp") ؛
محتويات المكون = createComponents ();
frame.getContentPane () .add (المحتويات ، BorderLayout.CENTER) ؛
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.updateComponentTreeUI(frame);
// نافذة العرض
frame.pack () ؛
frame.setVisible (صحيح) ؛
}
/*
* حدد مظهر lookandfeel المراد استخدامه عن طريق تعيين
* ثابت LOOKANDFEEL
* /
السلسلة الثابتة النهائية LOOKANDFEEL = "معدن" ؛
مكون عام إنشاء مكونات () {
زر JButton = JButton جديد ("زر") ؛
تسمية JLabel = JLabel الجديدة (LOOKANDFEEL) ؛
لوحة JPanel = JPanel جديدة (تخطيط الشبكة الجديد (0 ، 1)) ؛
panel.add (زر) ؛
panel.add (التسمية) ؛
panel.setBorder (BorderFactory.createEmptyBorder(30،30،10،30)) ؛
لوحة العودة ؛
}
فراغ ثابت خاص initLookAndFeel () {
سلسلة lookAndFeel = فارغة ؛
if (LOOKANDFEEL!= null) {
switch (LOOKANDFEEL) {
"Metal" box: lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName (); < / > الحوزة ؛
"النظام": lookAndFeel = UIManager.getSystemLookAndFeelClassName (); < / > الحوزة ؛
"نمط": lookAndFeel = "com.sun.java.swing.plaf.pattern.PatternLookAndFeel" ؛ < / > الحوزة ؛
مربع "GTK": lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel" ؛ < / > الحوزة ؛
}
جرب {
UIManager.setLookAndFeel(lookAndFeel);
}
catch (باستثناء ه) {
e.printStackTrace();
}
}
}
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
جديد LookAndFeelTest ();
}
}
< / pre> الإخراج: