java swing如何编写像eclipse界面模块可拖动

即一个界面被分割成1,2,3三个窗体,1就像底下的console窗口,原先时横躺在下面,用鼠标拖动可以变成竖直的窗口,这种效果怎么实现呢?最好给个例子... 即一个界面被分割成1,2,3三个窗体,1就像底下的console窗口,原先时横躺在下面,用鼠标拖动可以变成竖直的窗口,这种效果怎么实现呢?最好给个例子 展开
 我来答
白卡PALA
2017-03-17 · 知道合伙人软件行家
白卡PALA
知道合伙人软件行家
采纳数:648 获赞数:3420
性能测试4年工作经验。

向TA提问 私信TA
展开全部

首先这种效果我没有做过,因为现在实在没有人用swing写GUI客户端了。

让我现在给你写个完整的代码也么那么多时间》

首先分隔成三个窗体,用三个jpanel放到jframe中,然后仔细的设置窗体和jpanel的宽高和位置就能了,

至于拖动变成竖的,你只需要在底下console的窗口的jpanel加上MouseListener,具体的可靠下面的代码:

注意的是,当底下的console的位置变更,变成竖的了,其他的jpanel的位置你也需要进行更新调整

myFrame.addMouseListener(new MouseAdapter() {
            // 按下(mousePressed
            // 不是点击,而是鼠标被按下没有抬起)
            public void mousePressed(MouseEvent e) { 
                // 当鼠标按下的时候获得窗口当前的位置
                origin.x = e.getX(); 
                origin.y = e.getY();
            }
        });
        myFrame.addMouseMotionListener(new MouseMotionAdapter() {
            // 拖动(mouseDragged
            // 指的不是鼠标在窗口中移动,而是用鼠标拖动)
            public void mouseDragged(MouseEvent e) {                                                        
                // 当鼠标拖动时获取窗口当前位置
                Point p = myFrame.getLocation(); 
                // 设置窗口的位置
                // 窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置
                myFrame.setLocation(p.x + e.getX() - origin.x, p.y + e.getY()
                        - origin.y);
            }
        });
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式