2015-10-07 52 views
0

我正在開發一個在java.i中的小屏幕截圖應用程序,找到了一個從這裏選擇矩形區域的示例。 (this is that question) .i使用另一個jframe並添加一個切換按鈕來調用矩形選擇類。當選擇切換按鈕時,創建一個矩形選擇類的對象。現在我有問題時,如何使用jToggleButton調用類?

  1. 我用下面的代碼來創建選擇類對象 但如果選擇的對象是存在,它創建一個新的對象。如何阻止此?

    if (sn == null) { 
        if (btn_selection.isSelected()) { 
         sn = new SnipIt(); 
        } else { 
         sn.frame.dispose(); 
        } 
    } 
    

2.to關閉它使用此代碼行選擇類,

SwingUtilities.getWindowAncestor(sl).dispose(); 

所以我創建了一個名爲closeSelection方法和插入上面的代碼line.but當我把這個方法返回一個nullpointexception,

public void closeSelection() { 
     SelectionPane sl=new SelectionPane(); 
     SwingUtilities.getWindowAncestor(sl).dispose(); 

    } 

我知道我的代碼有很多錯誤。所以,請顯示這些並給我一個通過把一個簡單的條件if (sn == null) sn = new SnipIt(); solution.Highly感謝您的幫助☺

回答

1
  1. 例如。 null是對象「不存在」時的值。
  2. 您必須使用對第一個代碼段中實際的sn對象的引用。也許在一個字段中存儲對它的引用。
    • 它是你試圖擺脫完全不同的東西(你做一個new一個只是爲了處理掉吧):因爲 你的嘗試失敗。
    • 它沒有附加到實際的視圖層次結構,所以它沒有窗口。
+0

thanks.but我試圖在該class.Same異常處置jframe? –

+0

@stackquestions是否在某處添加了「sn」?即你可以在運行程序時看到窗格嗎?如果沒有,那麼它也沒有窗戶。 – zapl

+0

現在,但班上有一個jframe? –