JScrollPane中不放置任何组件,如何设置JScrollPane的背景色??

解决方案 »

  1.   

    提供轻量级组件的 scrollable 视图。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。有关 JScrollPane 的面向任务的文档,请参阅《The Java Tutorial》中的 How to Use Scroll Panes 一节。注意,JScrollPane 不支持重量级组件。  
     
    JViewport 为数据源提供一个窗口或“视口”,例如,一个文本文件。数据源为由 JViewport 视图显示的“scrollable 客户端”(即数据模型)。JScrollPane 基本上由 JScrollBar、一个 JViewport 以及它们之间的连线组成,如右图所示。 除了滚动条和视口之外,JScrollPane 也可以有一个列标题和一个行标题。这二者都是 JViewport 对象,可用 setRowHeaderView 和 setColumnHeaderView 指定。列标题视口自动左右滚动,跟踪主视口的左右滚动。(但是它不会垂直滚动。)行标题的滚动方式与此类似。 默认情况下,角为空。如果需要为滚动窗格增加一些功能或装饰,可使用 setCorner 将组件放入一个角中。角组件的大小完全由标题和包围它们的滚动条的大小确定。 要围绕主视口添加一个边界,可使用 setViewportBorder。(当然,也可以使用 setBorder 围绕整个滚动窗格添加一个边界。) 应该执行的一个常见操作是设置背景颜色,此颜色可在主视口小于视口或透明时使用。使用 scrollPane.getViewport().setBackground() 设置视口的背景色可实现此目的。设置视口而不是滚动窗格的颜色的原因是,默认情况下,JViewport 为不透明,还有一些其他属性,这意味着它将用其背景色完全填充背景。因此当 JScrollPane 绘制其背景时,视口通常将在它上面绘制。 默认情况下,JScrollPane 使用 ScrollPaneLayout 处理其子组件的布局。ScrollPaneLayout 使用以下两个方法之一确定视口视图的大小: 如果视图实现了 Scrollable,将使用 getPreferredScrollableViewportSize、getScrollableTracksViewportWidth 和 getScrollableTracksViewportHeight 的组合,否则使用 
    getPreferredSize。
      

  2.   

    scrollPane.getViewport().setBackground() 在jDK1.3上貌似用不了!