2014-05-13 40 views
0

是否有使用的目的:为什么我会在这个例子中使用JScrollPane?

附加(新JScrollPane的(名单))代替加(名单)在下面的代码?

public class Gui extends JFrame { 

    private JList list; 
    private static String[] colorNames = {"black", "blue", "red", "white"}; 
    private static Color[] colors = {Color.BLACK, Color.BLUE, Color.RED, Color.WHITE}; 

    Gui() { 
     list = new JList(colorNames); 
     list.setVisibleRowCount(colorNames.length); 
     list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     **add(new JScrollPane(list))**; 


    } 
} 

回答

1

对你的原始问题真正客观,答案将是:这取决于你希望在你的UI显示中实现什么。

但是,在绝大多数情况下,我应该想象在JScrollPane中包装组件JLists将是一个不错的主意。

JScrollPane当某个特定的JComponent实质上太大而不能适应其指定的空间时,它可以帮助您。如果物品数量超过JList本身的可用高度,那么您将失去对这些物品的视线JList。包装在JScrollPane将提供滚动机制供用户通过滚动所有可用项目进行浏览。

当然,如果您的清单没有超出其可用空间,那么通过在JScrollPane中进行清除并不会造成任何损害。 (另外,您可以自定义其显示,以便直到必要不显示滚动条,例如。)

这是特别常见的结合使用JScrollPaneJListsJTableJTextArea。不要被JComboBox愚弄 - 它有自己的滚动机制。

官方的Swing教程有一个名为How to Use Scroll Panes的部分,它提供了详细信息。

0

是 - 如果列表中的内容超出了可见的窗口,一个JScrollPane会,不出意外,自动添加滚动条你。

如果您只添加列表,它将在功能上相同,除非该区域太小而无法显示完整列表

相关问题