小编Ard*_*oja的帖子

使用GUI的内部类的标准?

我想知道内部类的标准实践(在Java中,但我认为它适用于所有OO语言).所以我有一个JFrame子类ControllerWindow,它包含一个MapPanel我绘制的JPanel子类(因此它需要覆盖paintComponent方法),并且需要实现一个鼠标监听器.我当前的解决方案是MapPanel在一个单独的类中实现MouseListener,但是当我向那个管理我的课程的人展示它时,他似乎认为(我们有一点语言障碍)这应该在内部类中在ControllerWindow或至少MouseListener应该是一个内部类.

所以我的问题是这里的标准解决方案是什么,将MouseListener放在内部类中,将JPanel放在不同的内部类中,还是放在它的单独类中?JPanel在一个内部类中实现MouseListener?为什么?

对我来说最重要的是它有效,但我想知道并理解这些事情背后的标准做法,如果可能的话.

编辑:下面的当前代码的非常简化版本.

class ControllerWindow extends JFrame{
    ...
    MapPanel drawPanel = new MapPanel();
    ...
}
Run Code Online (Sandbox Code Playgroud)

和一个单独的类:

class MapPanel extends JPanel implements MouseListener{

    ...

    public void paintComponent(Graphics g){
        ...//fillRects etc.
    }

    //MouseListener methods
    public void mouseReleased(MouseEvent e){
        requestFocus();
        ...
        repaint()
        ...
    }
    public void mousePressed(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseClicked(MouseEvent e){}
}
Run Code Online (Sandbox Code Playgroud)

也可能是这种情况,将两个类放在同一个文件中是可以接受的吗?我没有设想使用MapPanel除了以外的任何东西ControllerWindow.

java standards swing inner-classes

5
推荐指数
2
解决办法
1980
查看次数

标签 统计

inner-classes ×1

java ×1

standards ×1

swing ×1