مرحبا ,
انا جديد في عالم برمجة الجافا واريد مساعدة في كتابة كود استطيع من خلاله عند اختيار واحد من هذه الخيارات ( مربع , دائرة , مستطيل ) من Combobox بعد ذالك النقر في اي مكان بالنافذة ويتم رسم الشكل المراد طبعا حسب احداثيات الماوس وانا يكون حجم الشكل محدد مسبقا اي لا حاجة لتحديد الحكم بالمؤشر .
انا حاولة كتابة كود ولاكن لم ينفع
package pro;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class first extends JFrame {
private JLabel label;
private JPanel panel;
first(){
super("title here");
setLayout(new BorderLayout());
panel = new JPanel();
panel.setBackground(Color.white);
add(panel,BorderLayout.CENTER);
label = new JLabel("Mouse out side the pannel");
add(label,BorderLayout.SOUTH);
handlerclass handler = new handlerclass();
panel.addMouseListener(handler);
panel.addMouseMotionListener(handler);
}
public class handlerclass implements MouseListener , MouseMotionListener{
@Override
public void mouseClicked(MouseEvent event){
label.setText(String.format("you have clicked on %d and %d ", event.getX() , event.getY()));
repaint(event.getX(), event.getY(), 100, 100);
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) { }
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mouseDragged(MouseEvent e) {}
@Override
public void mouseMoved(MouseEvent event) {
label.setText(String.format("You Moved on %d and %d ", event.getX() , event.getY()));
}
}
}
التعليقات