در این آموزش، یاد میگیرید چگونه یک برنامه ایجاد کنید که هنگام حرکت موس بر روی دکمه، دکمه فوکوس شود، با استفاده از جاوا. پس الان بیایید شروع کنیم! ۱. JCreator یا NetBeans را باز کنید و یک برنامه جاوا با نام focusSample.java ایجاد کنید. ۲. کتابخانه بستههای زیر را import کنید:
import java.awt.*; // برای دسترسی به کلاس Component و GridLayout
import java.awt.event.*; // برای دسترسی به کلاسهای MouseAdapter, MouseEvent و MouseListener
import javax.swing.*; // برای دسترسی به کلاسهای JButton و JFrame
۳. یک کلاس به نام MouseHover ایجاد کنید که از MouseAdapter ارثبری کند تا بتواند به یک کامپوننت دسترسی پیدا کند و فوکوس را درخواست کند. از کلاس JComponent استفاده میکنیم تا کامپوننتی که باید فوکوس شود را فراخوانی کند.
class MouseHover extends MouseAdapter {
public void mouseEntered(MouseEvent mouseEvent) {
Component component = mouseEvent.getComponent();
if (!component.hasFocus()) {
component.requestFocusInWindow();
}
}
}
۴. متغیرهای frame به عنوان JFrame و mouseListener به عنوان کلاس MouseHover که قبلاً اعلام کردیم، را مقداردهی اولیه کنیم.
JFrame frame = new JFrame("Focus Sample");
MouseListener mouseListener = new MouseHover();
حالا، ۶ دکمه ایجاد میکنیم و فوکوس را که در کلاس MouseHover اعلام کردهایم، به آنها اعمال میکنیم. از متد setFocusable برای دکمهها استفاده میکنیم تا بتوانند فوکوس شوند.
for (int i = 1; i <= 6; i++) {
JButton button = new JButton(Integer.toString(i));
button.addMouseListener(mouseListener);
button.setFocusable(true);
frame.getContentPane().add(button);
}
۵. در نهایت، اندازه را تنظیم کرده، قابلیت دیدن را فعال کرده، و عملیات بستن آن را تنظیم میکنیم. کد زیر را اضافه کنید:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new GridLayout(2, 3));
frame.setSize(300, 200);
frame.setVisible(true);
Output: output