首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

在编辑器中创设一个ScrollPane

2012-07-01 
在编辑器中创建一个ScrollPane在实现UI编辑器的时候,由于本身有些UI组件是一个窗体类型的组件。那么我们在

在编辑器中创建一个ScrollPane

在实现UI编辑器的时候,由于本身有些UI组件是一个窗体类型的组件。那么我们在编辑器中画的时候也需要画窗体,侧滑条之类的都得备齐了。

?

gef窗体的构造元素:

1.ScrollPane:一个架子,有两个滑调,负责显示窗体的最外层边框,如侧滑条。

2.Viewport:视口,本来把有很多内容,但是视口里面就只能看到一部分,其它部分的内容被隐藏。

3.IFigure:视口里面的内容,它是真实的,大而全的。Viewport永远只显示它的一部分,而通过滑调来改变位置。

gef提供的大纲视图的鹰眼功能就是通过这套机制实现的。

?

ScrollPane:在draw2d中ScrollPane是用于实现由侧滑条的窗体,它本身不是很复杂。有两个ScrollBar是纵横两个滑条,在构建的时候,可以设置滑调的显示状态,是永不出现,永远出现,还是自动出现三种状态。

ScrollPane:

1.可以单独设置横向或纵向的滑调的显示状态

2.可以设置scrollTo:就是我们鼠标拉动滑块的位置,也可以直接设定值

3.可以setContents:这个是设置内容,其实就是上述的3,窗体里面的所有内容。

4.可以设置Viewport:就是上述2

5.作为一个figure,scrollpane的布局是ScrollPaneLayout,ScrollPaneLayout里面侧重于计算滑条的位置,而不关注容器内部的内容。

6.ScrollPaneSolver:这个类是用来计算ScrollPane里面显示的内容的。

1)Result:ScrollPaneSolver里面的一个静态常量,保存窗体显示的信息。是否显示滑调H和V,viewportArea,insets。

7.RangeModel:在创建ScrollBar的时候,会构造一个RangeModel对象,这个对象保存的是ScrollBar的一些信息。Maximum,Minimum,Value,Extent。Value:是滑块的位置。Extent:程度,没搞清楚啥意思。

在ScrollPane中RangeModel来自Viewport。

?

?

Viewport:Viewport实现了一个PropertyChangeListener监听

1.提供了两个默认的RangeModel,并提供给ScrollPane

2.ViewportLayout:此layout主要计算窗体显示内容的区域

3.实现了PropertyChangeListener,当RangeModel的值改变的时候,会刷新内容:

?

?

public static IFigure createPane(){        ScrollPane scrollpane = new ScrollPane();         scrollpane.setLocation(new Point(10, 10));        scrollpane.setSize(new Dimension(100, 100));        //设置纵向的滑条不显示        scrollpane.setVerticalScrollBarVisibility(ScrollPane.NEVER);        scrollpane.setViewport(new Viewport());                Panel figure = new Panel();//        figure.setBorder(new LineBorder(5));        figure.setOpaque(false);        //当内容的Size大于ScrollPane的size就会出现滑条        figure.setSize(new Dimension(210, 100));        figure.setBackgroundColor(ColorConstants.red);        scrollpane.setContents(figure);        return scrollpane;    }
?

?

热点排行