看板 java 關於我們 聯絡資訊
畢業後當了一年兵沒碰java,最近開始要用到了,讀書時GUI一直都是我的罩門,同學說最 簡單的偏偏是我最不會的XD,回歸正題... ----------------------------------------------------------------------------- 最近我在用NetBeans寫一個視窗程式,在弄JMenuItem的mouseClick發現都沒反應,雖然我 目前可以用一個boolean變數配合mouseReleased和mouseExited來達到我需要的動作,但是 這樣感覺是一種爛方法,因為我的JMenuItem有快30個,不知道能否提供我一個比較好的處 理方法,在此謝謝大家..3q~~ 以下附上單一JMenuItem用到的code: 全域變數*1: boolean test1_Clicked_Check = true; //預設為true Method *2: private void test1MenuItemMouseReleased(java.awt.event.MouseEvent evt) { if(test1_Clicked_Check) { //mouseRelease時在目標JMenuItem內 jTextField1.setText("test1"); //用來確認狀態而已 } else { //mouseRelease時不在目標JMenuItem內,無動作產生並重設為true test1_Clicked_Check = true; } } private void test1MenuItemMouseExited(java.awt.event.MouseEvent evt) { //滑鼠離開目標JMenuItem的範圍,設定為"非mouseClicked" test1_Clicked_Check = false; } ------------------------------------------------------------------------------ 附上NetBeans的code: test1MenuItem.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(java.awt.event.MouseEvent evt) { test1MenuItemMouseReleased(evt); } public void mouseExited(java.awt.event.MouseEvent evt) { test1MenuItemMouseExited(evt); } }); 仔細看才發現中間是用MouseAdapter,以前大學時純手工code時沒碰過這東西... ------------------------------------------------------------------------------ 在此謝謝各位,感謝~~!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.33.196
lingerkptor:想問一下~誰去呼叫那兩個方法? (listener?還是?) 11/26 15:59
AI3767:如果只想用click的功能,去用addActionListener就好了啊 11/26 16:02
risker760915:是listener,netbeans的code是使用mouseListener 11/26 16:10
lingerkptor:把listener呼叫那兩個方法的code貼出來吧.. 11/26 16:14
※ 編輯: risker760915 來自: 118.170.33.196 (11/26 16:36)
risker760915:已附上code,得來看看adapter有啥影響了... 11/26 16:37
risker760915:看了api,adapter沒影響到才對,頭大... 11/26 16:44
risker760915:感覺是JMenuItem那邊我有東西沒搞懂... 11/26 16:51
lingerkptor:我會override MouseAdapter的mouseClicked方法試試 11/26 17:20
lingerkptor:並加上System.out.println(evt.toString());測試 11/26 17:22
lingerkptor:如果再不行,試著去呼叫二樓的方法並加入以上看看事件 11/26 17:24
PsMonkey:[亂入] 你同學要嘛天才,要嘛就是根本沒寫過 GUI..... 11/26 17:57
risker760915:override無效,等等吃完晚餐再試試看二樓的方法..3q~~ 11/26 18:35