2017-03-16 82 views
0

我對這些問題感到困惑,我只是想知道是否有人看到我是否正確地做他們。澄清行動事件的理解,構造函數

如果你想創建像橡皮筋線,它與 用戶輸入不斷變化的影響,你很可能需要一個(一) A. MouseListener的 B. ActionListener的 C. MouseAdapter D. MouseMotionListener E. KeyListener

我認爲答案是動作偵聽器,因爲有什麼對象正在觀察產生一個動作事件。

S uppose程序員創建一個名爲MyFrame的Java類,它擴展了JFrame。 類MyFrame包含一個構造函數,其正文爲空。如果 類型的對象被創建並使其可見(但對象中沒有其他方法調用 ),那麼當用戶單擊窗口右上角的「X」時 (frame),

A.程序將終止

B.窗口將被隱藏起來,但仍然會存在

C.窗口將被關閉

D.窗口將被最小化(「圖標化」 )

E.問題不能回答,因爲這樣的類不能被編譯

F.不能從假設我理解正確的問題給出

的信息確定的答案。所以MyFram類擴展到JFrame。而我的類MyFrame {}構造函數是空的。我認爲它是B,因爲它會編譯,但是可能不會採取任何形式的行動,假設根本沒有任何東西被調用。

+0

什麼是橡皮筋效應? – Oneiros

+1

問你自己這個,一個'ActionListener'會給你什麼信息,讓你確定起點和終點的選擇區域? – MadProgrammer

+1

@Oneiros:橡皮筋線是實現GUI選擇矩形的一種方式;我舉了一個例子[這裏](http://stackoverflow.com/a/42829574/230513)。 – trashgod

回答

1

正如您可以從official Java documentation讀取的那樣,JFrame的默認關閉操作是HIDE_ON_CLOSE,所以您的答案是正確的。用MyFrame擴展JFrame,但使用空的構造函數使得JFrameMyFrame完全等效。

1

MouseMotionListener,例如在所引用here的例子rubber band selection使用的MouseMotionHandler,允許以便在其執行mouseDragged()被更新。

private class MouseMotionHandler extends MouseMotionAdapter { 
    … 
    @Override 
    public void mouseDragged(MouseEvent e) { 
     … 
     e.getComponent().repaint(); 
    } 
}