السلام عليكم ورحمة الله
واجهتني مشكلة غريبة وهو أنني عملت JTextArea وعملت له مستمع لحدث الضغط بالفأرة ووضعت فيه كود بهذا الشكل :
private void z7MouseClicked(java.awt.event.MouseEvent evt) {
Point x2=getMousePosition();
int key = evt.getButton();
if(key==3){
final JMenuItem item = new JMenuItem("Clean");
item.setBackground(Color.white);
item.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1) );
item.setLocation(x2);
add(item);
item.setSize(80, 20);
setVisible(true);
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
item.setVisible(false);
}
});
}
}عندما أضغط يمين بالفأرة يرسم JMenuItem وعند الضغط على كلمة Clean باليسار لايتم إغلاق هذا الكائن , إلا بحالة واحدة :
وهي أن يرسم كائن JMenuItem خارج JTextArea , مثلاً إذا ضغطت بنهاية الـJTextArea في الأسفل يرسم JMenuItem خارج الـJTextArea وعندها
يتم إغلاق كائن JMenuItem بدون مشكلة .