如何实现动态的改变控件的大小,比如JLaber 要求鼠标到JLaber边缘的时候变成箭头,然后拖动改变JLaber的大小。

解决方案 »

  1.   

    我没找到合适的事件,控件倒是有resize()方法,但是怎样才能实现到边缘出现箭头的效果呢,
    还有一个问题就是,如果是一排控件还要实现,前面的变长后面的向后移动,控件多了好像有点乱。
      

  2.   

    mouse事件, 捕捉e.getPoint()
    定义x<3&y<3则认为左上角, 更改cursor
    定义x<3则认为左边, 更改cursor,
    其他方位同理.
    mouseMotion事件, drag变化组件大小. 至于多个组件互动, 请不要用null作为layout. 自己写个layout应该难度不大.
      

  3.   

    楼上说的有道理,不过为什么要自己些layout呢,用null不是挺好吗?
    我想到了一个想法就是在控件之间插入一个细长的JButton在Button的mouseon()事件中改变cursor。
      

  4.   

    Cursor c=new Cursor(Cursor.E_RESIZE_CURSOR);
        
     arowbutton[i].setCursor(c);
    可以实现鼠标形状的变化
    arowbutton[i]是加进去的细长的Button对象。