要在画布上画许多行文字,不一定使用等宽的字体,所以无法预估画布的宽度和高度。怎么样可以动态调整大小?

解决方案 »

  1.   

    画布也是一个控件,比如一个JPanel
    一个控件的大小根据布局管理器的不同,一般取决于
    getSize
    getPreferredSize
    getMinimumSize
    等方法获得的属性你既然想动态改变大小,
    那你必然要在绘制的时候动态计算你绘制的文字的x,y,width,height等属性
    从而算出现在的面板需要多大才能完全显示这些文字
    之后调用
    setSize
    setPreferredSize
    setMinimumSize
    等方法改变画布的大小当然,你最好把的这个画布放到一个JScrollPane中去,以免屏幕显示不下