سؤال

أريد موسى ل jpanel داخل jtabbedpane في jframe ...
أريده أن يطبع شيئًا ما ، كلما تم النقر عليها/الضغط على الماوس.
لقد حاولت النظر حولها ، لكن عندما أحاول وتطبيقه ، حصلت على خطأ في هذا السطر:

public class GUI implements ActionListener, MouseListener

وهذا هو الخطأ:

GUI ليست مجردة ولا تتغلب على الطريقة التجريدية mouseExited(java.awt.event.MouseEvent) في java.awt.event.MouseListener

ماذا يعني ذلك؟

PS (يسمى JPANEL/TAB BIT الذي أريده فيه: DisplayMainpanel)
شكرًا جزيلاً.

هل كانت مفيدة؟

المحلول

JPanel jPanel = new JPanel();
jPanel.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    System.out.println("mouseClicked");
                }
                public void mouseEntered(java.awt.event.MouseEvent evt) {
                    System.out.println("mouseEntered");
                }
                public void mouseExited(java.awt.event.MouseEvent evt) {
                    System.out.println("mouseExited");
                }
                public void mousePressed(java.awt.event.MouseEvent evt) {
                    System.out.println("mousePressed");
                }
                public void mouseReleased(java.awt.event.MouseEvent evt) {
                    System.out.println("mouseReleased");
                }
            });

نصائح أخرى

حسنًا ، عليك تجاوز mouseExit:

في الخاص بك GUI صف دراسي:

@Override
public void mouseExit(MouseEvent e) { /* Do nothing */ }

عندما تختفي جميع الأخطاء. لا تنسى yourPanel.addMouseListener(theMouseListener):

yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);

ثم قم بتعيين التركيز على لوحة ، للتأكد من أن الأحداث سيتم اكتشافها.

yourPanel.requestFocus();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top