Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codenameone 可拖动&;代码名为1的可调整大小的容器_Codenameone - Fatal编程技术网

Codenameone 可拖动&;代码名为1的可调整大小的容器

Codenameone 可拖动&;代码名为1的可调整大小的容器,codenameone,Codenameone,我正试图通过setDraggable将我的自定义小部件设置为draggable 第1部分: 我的目标是创建一个标题为(北)的矩形容器,其中包含其他组件(中心)。 仅当我拖动标题时,才应拖动MyWidget public class MyWidget extends Container { public MyWidget(String labelText) { // Temp size. This will be removed after actual compone

我正试图通过setDraggable将我的自定义小部件设置为draggable

第1部分: 我的目标是创建一个标题为(北)的矩形容器,其中包含其他组件(中心)。 仅当我拖动标题时,才应拖动MyWidget

public class MyWidget extends Container {

    public MyWidget(String labelText) {

        // Temp size. This will be removed after actual components
        // are put into innerContainer 
        setPreferredH(100);
        setPreferredW(400);

        setLayout(new BorderLayout());

        Label title = new Label(labelText);
        addComponent(BorderLayout.NORTH, title);

        Container innerContainer = new Container();

        addComponent(BorderLayout.CENTER, innerContainer);
    }

}

setDragable()在我将其用于标签时效果很好,但在我将相同的方法应用于MyWidget时无法进行拖动

第二部分: 此外,请建议如何使这个小部件在长按时可调整大小。我的目标是在长按时为容器提供可调整大小的指示器边缘&当小部件进入调整大小模式时。然后我通过拖动边来调整组件的大小。如果我在MyWidget外部单击,调整大小模式将结束


PS:当我点击小部件的一角时,我注意到拖动“有时”会发生

您正试图拖动正在抓取拖动事件的单个组件。我建议您尝试以下方式:

setLeadComponent(title);
这将有效地将整个层次结构转换为一个统一的组件,该组件一起更改状态并作为一个组件工作

这:

是一个错误,您不应该正常使用setPreferred,但是如果您这样做,您应该始终使用:

setPreferredSize(new Dimension(400, 100));

谢谢你的帮助。第1部分:解决方案使
title
接收所有事件。任何
innerContainer
组件(例如
按钮
)将无法接收事件。请指导我第二部分。我是CN1的新蜜蜂。覆盖长按并在标签中拖动指针(您可能需要使其可聚焦)。当长按发生时,激活一种模式,在该模式下,指针拖动将在不调用super的情况下调整大小。
setPreferredH(100);
setPreferredW(400);
setPreferredSize(new Dimension(400, 100));