关于动态生成控件的位置 AWT或者swing都需要用得布局控制器如果我想通过拖曳某个控件从而在某个位置动态生成一个控件,是不是做不到?我感觉好像不行我现在做工况图的维护,也就是在一张背景图上,用标签来对应测点的位置,各位可有更好的解决方案? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然可以实现了既然java可以通过Remove和add方法来添加删除控件,那空间的位置也就不存在问题了。你还可以动态设置它的layout难点在于怎么确定控件应该添加到layout的什么点上。你说的情况我觉得最好的实现方法是自己实现LayoutManager,这样比较好决定控件被拖曳到什么位置上。 按照你的情况,用borland的xylayout比较好实现 可以具体到x、y轴的坐标 留意一下Container.add(comp,index)方法,这个index就是你要插入的位置。 拖拽的时候,怎么能拖到另外一层,我用xylayout,我想从另外一层把控件拖进来另外,拖拽时候,怎样才能显示一个虚线的拖动对象?就象windows那样?多谢~ 组件拖拽效果?java恐怕做起来比较困难 从另外一层拖过来其实就是remove和add的动作而已,没什么深奥的至于虚线来显示拖动对象,这个非常难.严格的来说要通过手动绘制来实现,当然你也可以简单的设置鼠标cursor来实现,就是自己做个带小虚线方框的鼠标. 如果拖曳效果比较难那就算了现在的问题是,我虽然用鼠标拖动组件到一个新的位置但是每次我向当前的jpanel里增加新的组件时候调用 jPanel3.add(jLabel);jPanel3.validate();结果原来被拖动的组件又回到拖动前的位置这个应该怎样避免呢我现在想用序列化把整个jpanel保存起来 jPanel3的layout是采用xYLayout这个哪里需要特别设置呢? 你拖动后要设置被拖动的component的位置代码贴出来看看,就是拖动的代码 static Point origin = new Point();//鼠标拖动 public void jLabel1_mouseDragged(MouseEvent mouseEvent) { Point p = jLabel1.getLocation(); jLabel1.setLocation(p.x + mouseEvent.getX() - origin.x, p.y + mouseEvent.getY()- origin.y); repaint(); }//鼠标按下 public void jLabel1_mousePressed(MouseEvent e) { origin.x = e.getX(); origin.y = e.getY(); } 若将jPanel3的layout设置为空我将其中的按钮序列化,然后再反序列化,可以成功,但,向其中动态增加按钮失败(没有显示)如果不设置为空,可以动态增加按钮,但反序列化时候,按钮位置给重置了我怀疑是布局控制器的问题但不知怎么解决 eclipse计算2的64方和计算器计算的不一样 请教关于动态代理参数问题? 关于SimpleDateFormat日期格式和操作系统的setting(急) 面试,求各位帮帮忙了 一道很基础的题~~请说清楚原因!感谢! 测试大家this用得怎么样?呵呵 关于static 180分高分,求解一个替换问题!谢谢!急!! 简单问题:如何获得当前的URL? 请大侠帮忙,一定散分 请一个在BS结构上调用客户端DLL的解决方案 分不够再加!! 关于大文件的行数的取得
另外,拖拽时候,怎样才能显示一个虚线的拖动对象?就象windows那样?多谢~
至于虚线来显示拖动对象,这个非常难.严格的来说要通过手动绘制来实现,当然你也可以简单的设置鼠标cursor来实现,就是自己做个带小虚线方框的鼠标.
现在的问题是,我虽然用鼠标拖动组件到一个新的位置
但是每次我向当前的jpanel里增加新的组件时候
调用
jPanel3.add(jLabel);
jPanel3.validate();
结果原来被拖动的组件又回到拖动前的位置
这个应该怎样避免呢我现在想用序列化把整个jpanel保存起来
这个哪里需要特别设置呢?
代码贴出来看看,就是拖动的代码
static Point origin = new Point();//鼠标拖动
public void jLabel1_mouseDragged(MouseEvent mouseEvent) {
Point p = jLabel1.getLocation();
jLabel1.setLocation(p.x + mouseEvent.getX() - origin.x, p.y + mouseEvent.getY()
- origin.y);
repaint();
}
//鼠标按下
public void jLabel1_mousePressed(MouseEvent e) {
origin.x = e.getX();
origin.y = e.getY(); }
我将其中的按钮序列化,然后再反序列化,可以成功,但,向其中动态增加按钮失败(没有显示)如果不设置为空,可以动态增加按钮,但反序列化时候,按钮位置给重置了
我怀疑是布局控制器的问题
但不知怎么解决