我正在尝试设计一类无限坐标板与网格。我已经扩展了JViewport
,它在初始位置绘制ok(在JScrollPane
之内)。如何告诉滚动窗格有任何方向滚动的空间?如何正确地扩展JViewport?
下不利于
JCoordinateViewport coordinate = new JCoordinateViewport();
coordinate.setBackground(Color.WHITE);
//coordinate.setPreferredSize(new Dimension(10000, 10000));
JScrollPane scroll = new JScrollPane();
//scroll.setViewportView(coordinate);
scroll.setViewport(coordinate);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.getVerticalScrollBar().setMinimum(-10000);
scroll.getVerticalScrollBar().setMaximum(+10000);
scroll.getHorizontalScrollBar().setMinimum(-10000);
scroll.getHorizontalScrollBar().setMaximum(+10000);
UPDATE
有谁知道JScrollPane中如何确定滚动的范围从它的视?
UPDATE2
我发现,如果最大值和最小值都setVisible
称为后置出现滚动科技工作。
但不幸的是,paintConponent
没有调用滚动。
为什么?
UPDATE3
虽然滚动条的工作,他们不改变视口位置。
为什么?
滚动是基于加入到该滚动窗格的视口中的部件的优选尺寸。 – camickr 2013-02-21 22:29:07
我没有组件,我扩展'JViewport',它的组件是'null'。 – 2013-02-21 22:35:51
那么一个scrollpane被设计为在其视口中显示一个组件,所以这将是你的问题。 – camickr 2013-02-22 01:23:26