首页 > 解决方案 > 当我只是在它周围移动鼠标时在 JPanel 上绘图

问题描述

所以我浏览了多个论坛和谷歌,找不到我的具体问题的答案。我有 4 个 Jpanels 堆叠在一起。我也有 4 个 Jlabels,每当我单击其中一个 Jlabels 时,四个 Jpanles 之一应该是可见的,而其他的应该是不可见的。除了一件事外,一切似乎都很好(在这个 gif 中解释得更好,请检查它:https ://drive.google.com/file/d/1yIJIe27YaiHnBmos1vaLtkDvvJ_APJiE/view?usp=sharing )所以你可以看到问题,每当我运行我的 Jframe 并开始将鼠标移到第一个 Jpanel 上时,我都会在其上绘制一些其他按钮和复选框等。但是一旦我单击其中一个 Jlabels,并开始移动鼠标,问题就不会再发生了。

这些是我的鼠标单击事件 (formMouseClicked) 和每个 jLabels 的鼠标单击事件:

private void formMouseClicked(java.awt.event.MouseEvent evt) {                                  
        // TODO add your handling code here:
         if (evt.getSource()==ConRefRegLabel)
        {

            ConRefNumDispenser.setVisible(false);
            RefRegForm.setVisible(true);
            RegUpdEdiForm.setVisible(false);
            SysAdmRequest.setVisible(false);
        }
        if (evt.getSource()==ConRefRegUpdLabel)
        {
            ConRefNumDispenser.setVisible(false);
            RefRegForm.setVisible(false);
            RegUpdEdiForm.setVisible(true);
            SysAdmRequest.setVisible(false);
        }
        if (evt.getSource()==ConRefNumDisLabel)
        {
            ConRefNumDispenser.setVisible(true);
            RefRegForm.setVisible(false);
            RegUpdEdiForm.setVisible(false);
            SysAdmRequest.setVisible(false);
        }
        if (evt.getSource()==RegNewSupIDLabel)
        {
            ConRefNumDispenser.setVisible(false);
            RefRegForm.setVisible(false);
            RegUpdEdiForm.setVisible(false);
            SysAdmRequest.setVisible(true);
        }
    }        

private void ConRefRegLabelMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // TODO add your handling code here:
        formMouseClicked(evt);
                            
    }                                           
    private void ConRefRegUpdLabelMouseClicked(java.awt.event.MouseEvent evt) {                                               
        // TODO add your handling code here:
        formMouseClicked(evt);
    }                                              
    private void ConRefNumDisLabelMouseClicked(java.awt.event.MouseEvent evt) {                                               
        // TODO add your handling code here:
        formMouseClicked(evt);
    }                                              
    private void RegNewSupIDLabelMouseClicked(java.awt.event.MouseEvent evt) {                                              
        // TODO add your handling code here:
        formMouseClicked(evt);
    }                                            

标签: javaswingjpaneljlabelmouseclick-event

解决方案


推荐阅读