我试图通过setDraggable使我的自定义小部件成为可拖动的 .
Part 1: 我的目标是创建一个带有 Headers (北)的矩形容器,其中包含其他组件(中心) . 如果我拖动 Headers ,应该只拖动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);
}
}
Container myWidget = new MyWidget("MyWidget");
myWidget.setDraggable(true);
当我将它用于Label时,setDraggable()运行良好,但是当我将相同的方法应用于MyWidget时,我无法拖动 .
Part 2: 另外,请建议如何在长按时调整此小部件的大小 . 我的目标是在长按和按下时为容器提供可调整大小的指示器边缘,小部件进入调整大小模式 . 然后我通过拖动边缘来调整组件大小 . 如果我在MyWidget外部单击,调整大小模式将结束 .
PS :当我点击小工具的一角时,我注意到拖动正在发生'sometimes' .
1 回答
您正在尝试拖动抓取拖动事件的单个组件 . 我建议尝试类似的东西:
这将有效地将整个层次结构转换为单个统一组件,该组件一起更改状态并作为一个组件工作 .
这个:
是一个错误,你不应该正常使用setPreferred但是如果你这样做,你应该总是使用: