برنامه نویسی مبتدی گرافیکی (جاوا)
ارسال شده: پنجشنبه ۱۴۰۰/۶/۲۵ - ۱۵:۵۷
با سلام بنده تازه شروع به برنامه نویسی گرافیکی در محیط نت بینز کردم.یک پروژه ای رو شروع کردم که وقتی موس روی پنل درگ میشه نقاط رو بگیره و در یک آرایه ذخیره کنه.بعد با استفاده از یک تابع گرفیکی بین اون نقاط خط ترسیم بشه.یک جورایی شبیه برنامه پینت که خیلی خیلی ساده باشه.مشکل اینجاست که وقتی موس از حالت درگ خارج میشه و دوباره میخوام در جای دیگه از پنل اونو درگ کنم و ترسیمی انجام بدم نقطه ای که خط از اون شروع میشه نقطه آخر خط قبلی هست و در واقع نمیشه خطوط مجزا رسم کرد. کد های مربوط به درگ کردن رو میزارم. لطفا اگر ایده ای دارید بگید ممنون میشم.خودم فکر می کنم باید رویداد های وقتی که موس به حالت ریلیز(release) در میاد رو کنترل کنم
کد مربوط به کنترل درگ موس در پنل:(تابع مربوط به ریلیز رو خالی گذاشتم چون نمیدونم چیکار کنم)
کد مربوط به کنترل درگ موس در پنل:(تابع مربوط به ریلیز رو خالی گذاشتم چون نمیدونم چیکار کنم)
private ArrayList<Point> points = new ArrayList();
private void formMouseDragged(java.awt.event.MouseEvent evt) {
points.add(evt.getPoint());
this.repaint();
}
private void formMouseReleased(java.awt.event.MouseEvent evt) {
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
for(i = 0; i < points.size(); i++){
g.drawLine(points.get(i).x, points.get(i).y,points.get(i+1).x ,points.get(i+1).y );
}
}
private void formMouseDragged(java.awt.event.MouseEvent evt) {
points.add(evt.getPoint());
this.repaint();
}
private void formMouseReleased(java.awt.event.MouseEvent evt) {
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
for(i = 0; i < points.size(); i++){
g.drawLine(points.get(i).x, points.get(i).y,points.get(i+1).x ,points.get(i+1).y );
}
}