2017-03-16 80 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(); 
    } 
}