این آموزش به شما یاد میدهد چگونه یک برنامه ایجاد کنید که امکان انتخاب و تغییر رابط کاربری (UI) نصب شده در جاوا را داشته باشد. حالا بیایید این آموزش را شروع کنیم! 1. JCreator یا NetBeans را باز کرده و یک برنامه جاوا با نام فایل UILookAndFeel.java بسازید. 2. بسته کتابخانه زیر را وارد کنید:
import java.awt.event.*; // برای دسترسی به کلاسهای ActionEvent و ActionListener
import java.awt.*; // برای دسترسی به کلاس GridLayout
import javax.swing.*; // برای دسترسی به کلاسهای JButton، JList، JTextArea، JFrame، JPanel، SwingUtilities و UIManager
3. متغیرهای زیر را در Main خود ابتداکنید.
final JFrame frame = new JFrame("تغییر رابط کاربری");
JList comboBox = new JList(new String[] { "www.sourcecodester.com", "این یک لیست است." });
JTextArea txtArea = new JTextArea("www.facebook.com/BermzISware \n این یک TextArea است.");
JPanel panel = new JPanel();
4. برای داشتن یک رویداد برای تغییر رابط کاربری فریم، از ActionListener استفاده میکنیم و زمانی که روی یک جزء خاص کلیک میکنید، رابط کاربری به طور مستقیم تغییر میکند.
ActionListener changeUI = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
String plaf = null;
plaf = actionEvent.getActionCommand();
String finalLafClassName = plaf;
try {
UIManager.setLookAndFeel(finalLafClassName);
SwingUtilities.updateComponentTreeUI(frame);
} catch (Exception exception) {
System.out.print("امکان تغییر رابط کاربری وجود ندارد.");
}
}
};
برای دریافت تمام رابطهای کاربری نصب شده در جاوا، این کد را وارد کنید:
UIManager.LookAndFeelInfo UIlooks[] = UIManager.getInstalledLookAndFeels();
5. حالا یک JButton ایجاد کنید که تمام رابطهای کاربری نصب شده در نرم افزار جاوا شما را دریافت کند. این همچنین ActionListener را که قبلاً تعریف کردهایم وقتی دکمه را کلیک میکنید، فراخوانی میکند.
for (int i = 0, n = UIlooks.length; i < n; i++) {
JButton button = new JButton(UIlooks[i].getName());
button.setActionCommand(UIlooks[i].getClassName());
button.addActionListener(changeUI);
panel.add(button);
}
6. در نهایت، تمامی جزئیات را اضافه کنید، طرح را به GridLayout تنظیم کنید، اندازه، قابلیت مشاهده و عملیات بستن فریم را تنظیم کنید. این کد را وارد کنید:
frame.getContentPane().setLayout(new GridLayout(1,1));
frame.getContentPane().add(comboBox);
frame.getContentPane().add(txtArea);
frame.getContentPane().add(panel);
frame.setSize(580, 250);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);