ایجاد یک کلاس فرزند برای JPanel برای ترسیم با ماوس در جاوا :
در جاوا، ما میتوانیم از کلاس JPanel برای ایجاد صفحات گرافیکی استفاده کنیم. اما گاهی اوقات نیاز داریم که قابلیت ترسیم با استفاده از ماوس را به JPanel اضافه کنیم. در این مقاله، ما یک کلاس فرزند برای JPanel ایجاد خواهیم کرد تا این قابلیت را فراهم کند.
ابتدا، برای ایجاد کلاس فرزند، ما باید از کلاس JPanel ارث بری کنیم:
public class DrawingPanel extends JPanel {
سپس، برای اضافه کردن قابلیت ترسیم با استفاده از ماوس، ما باید متدهای مربوط به رویدادهای ماوس را در این کلاس فراهم کنیم. در این مقاله، ما تنها به سه رویداد کلیک، موسوقت و رها کردن کلید ماوس تمرکز خواهیم کرد:
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// اینجا کد ترسیم خود را اضافه کنید
}
@Override
public void mouseClicked(MouseEvent e) {
// کدی که در صورت کلیک شدن ماوس اجرا میشود
}
@Override
public void mousePressed(MouseEvent e) {
// کدی که در صورت فشار دادن ماوس اجرا میشود
}
@Override
public void mouseReleased(MouseEvent e) {
// کدی که در صورت رها کردن ماوس اجرا میشود
}
حالا، ما باید قابلیت تعریف رویدادهای ماوس را فعال کنیم. برای این کار، ما باید یک شی از کلاس MouseAdapter ایجاد کنیم و آن را به کلاس فرزند اضافه کنیم:
public class DrawingPanel extends JPanel {
public DrawingPanel() {
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// کد ترسیم را اضافه کنید
}
@Override
public void mousePressed(MouseEvent e) {
// کد ترسیم را اضافه کنید
}
@Override
public void mouseReleased(MouseEvent e) {
// کد ترسیم را اضافه کنید
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// کد ترسیم خود را اضافه کنید
}
}
حالا، شما میتوانید درون متدهای مربوط به رویدادهای ماوس کد خود را برای ترسیم اجرا کنید. به عنوان مثال، شما میتوانید موقعیت ماوس را با استفاده از متدهای getX و getY دریافت کنید و شکلی را در همان موقعیت ترسیم کنید:
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
Graphics g = getGraphics();
g.fillRect(x, y, 50, 50);
}
با این کار، شما یک کلاس فرزند برای JPanel با قابلیت ترسیم با استفاده از ماوس ایجاد کردید. این کلاس را میتوانید در هر برنامهای استفاده کنید که نیاز به ترسیم شکلها با استفاده از ماوس دارد.