javax.swing.JViewport#setViewPosition ( )源码实例Demo

下面列出了javax.swing.JViewport#setViewPosition ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netbeans   文件: ETableColumn.java
/**
 * Forces the table to resize given column.
 */
private void resize(int newWidth, JTable table) {
    int oldWidth = getWidth();
    JTableHeader header = table.getTableHeader();
    if (header == null) {
        return;
    }
    header.setResizingColumn(this);
    final int oldMin = getMinWidth();
    final int oldMax = getMaxWidth();
    setMinWidth(newWidth);
    setMaxWidth(newWidth);
    setWidth(newWidth);
    // The trick is to restore the original values
    // after the table has be layouted. During layout this column
    // has fixed width (by setting min==max==preffered)
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            setMinWidth(oldMin);
            setMaxWidth(oldMax);
        }
    });
    Container container;
    if ((header.getParent() == null) ||
            ((container = header.getParent().getParent()) == null) ||
            !(container instanceof JScrollPane)) {
        header.setResizingColumn(null);
        return;
    }
    
    if (!container.getComponentOrientation().isLeftToRight() &&
            ! header.getComponentOrientation().isLeftToRight()) {
        if (table != null) {
            JViewport viewport = ((JScrollPane)container).getViewport();
            int viewportWidth = viewport.getWidth();
            int diff = newWidth - oldWidth;
            int newHeaderWidth = table.getWidth() + diff;
            
            /* Resize a table */
            Dimension tableSize = table.getSize();
            tableSize.width += diff;
            table.setSize(tableSize);
            
            /* If this table is in AUTO_RESIZE_OFF mode and
             * has a horizontal scrollbar, we need to update
             * a view's position.
             */
            if ((newHeaderWidth >= viewportWidth) &&
                    (table.getAutoResizeMode() == JTable.AUTO_RESIZE_OFF)) {
                Point p = viewport.getViewPosition();
                p.x = Math.max(0, Math.min(newHeaderWidth - viewportWidth, p.x + diff));
                viewport.setViewPosition(p);
            }
        }
    }
    header.setResizingColumn(null);
}
 
源代码2 项目: netbeans   文件: IndexedCustomizer.java
/** notify the Component to autoscroll */
public void autoscroll(Point cursorLoc) {
    JViewport viewport = getViewport();
    Point viewPos = viewport.getViewPosition();
    int viewHeight = viewport.getExtentSize().height;

    if ((cursorLoc.y - viewPos.y) <= realInsets.top) {
        // scroll up
        viewport.setViewPosition(new Point(viewPos.x, Math.max(viewPos.y - realInsets.top, 0)));
    } else if (((viewPos.y + viewHeight) - cursorLoc.y) <= realInsets.bottom) {
        // scroll down
        viewport.setViewPosition(
            new Point(viewPos.x, Math.min(viewPos.y + realInsets.bottom, this.getHeight() - viewHeight))
        );
    }
}
 
源代码3 项目: netbeans   文件: Utilities.java
private void changed() {
    JViewport viewport = sp.getViewport();
    Point viewPosition = viewport.getViewPosition();
    if (viewPosition.x > 0) {
        try {
            Rectangle textRect = editorPane.getUI().modelToView(editorPane, editorPane.getDocument().getLength());
            int textLength = textRect.x + textRect.width;
            int viewLength = viewport.getExtentSize().width;
            //System.out.println("Utilities.createSingleLineEditor(): spLength = "+sp.getSize().width+", viewLength = "+viewLength+", textLength = "+textLength+", viewPosition = "+viewPosition);
            if (textLength < (viewPosition.x + viewLength)) {
                viewPosition.x = Math.max(textLength - viewLength, 0);
                viewport.setViewPosition(viewPosition);
                //System.out.println("Utilities.createSingleLineEditor(): setting new view position = "+viewPosition);
            }
        } catch (BadLocationException blex) {
            Exceptions.printStackTrace(blex);
        }
    }
}
 
源代码4 项目: constellation   文件: HistogramDisplay.java
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
    final JViewport scrollpane = (JViewport) getParent();
    final Point pos = scrollpane.getViewPosition();
    final int y;
    final int SCROLL_HEIGHT = 50;
    if (e.getWheelRotation() < 0) {
        y = pos.y - (e.getScrollAmount() * SCROLL_HEIGHT);
    } else {
        y = pos.y + (e.getScrollAmount() * SCROLL_HEIGHT);
    }

    scrollpane.setViewPosition(new Point(0, Math.max(0, y)));
}
 
源代码5 项目: nordpos   文件: JRViewer.java
void pnlLinksMouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_pnlLinksMouseDragged
	// Add your handling code here:

	Container container = pnlInScroll.getParent();
	if (container instanceof JViewport)
	{
		JViewport viewport = (JViewport) container;
		Point point = viewport.getViewPosition();
		int newX = point.x - (evt.getX() - downX);
		int newY = point.y - (evt.getY() - downY);

		int maxX = pnlInScroll.getWidth() - viewport.getWidth();
		int maxY = pnlInScroll.getHeight() - viewport.getHeight();

		if (newX < 0)
		{
			newX = 0;
		}
		if (newX > maxX)
		{
			newX = maxX;
		}
		if (newY < 0)
		{
			newY = 0;
		}
		if (newY > maxY)
		{
			newY = maxY;
		}

		viewport.setViewPosition(new Point(newX, newY));
	}
}
 
源代码6 项目: netbeans   文件: AutoscrollSupport.java
/** Performs autoscroll operation.
*/
public void autoscroll(Point cursorLoc) {
    JViewport viewport = getViewport();

    if (viewport == null) {
        return;
    }

    Point viewPos = viewport.getViewPosition();
    int viewHeight = viewport.getExtentSize().height;
    int viewWidth = viewport.getExtentSize().width;

    // perform scrolling
    if ((cursorLoc.y - viewPos.y) < insets.top) {
        // scroll up
        viewport.setViewPosition(new Point(viewPos.x, Math.max(viewPos.y - scrollUnits.top, 0)));
    } else if (((viewPos.y + viewHeight) - cursorLoc.y) < insets.bottom) {
        // scroll down
        viewport.setViewPosition(
            new Point(viewPos.x, Math.min(viewPos.y + scrollUnits.bottom, comp.getHeight() - viewHeight))
        );
    } else if ((cursorLoc.x - viewPos.x) < insets.left) {
        // scroll left
        viewport.setViewPosition(new Point(Math.max(viewPos.x - scrollUnits.left, 0), viewPos.y));
    } else if (((viewPos.x + viewWidth) - cursorLoc.x) < insets.right) {
        // scroll right
        viewport.setViewPosition(
            new Point(Math.min(viewPos.x + scrollUnits.right, comp.getWidth() - viewWidth), viewPos.y)
        );
    }
}
 
源代码7 项目: Open-LaTeX-Studio   文件: PDFViewerTopComponent.java
private void refreshDisplayPane() {
    JPanel pdfImagePanel = pdfDisplay.drawPreviewOnJPanel();
   
    if (pdfImagePanel != null) {
        JViewport vp = jScrollPane1.getViewport();
        Point p = vp.getViewPosition();
        vp.setView(pdfImagePanel);
        vp.setViewPosition(p);
    }
    
    jTextField1.setText(String.valueOf(pdfDisplay.getSelectedPage()));
    jLabel2.setText("of " + pdfDisplay.getTotalPages());
}
 
源代码8 项目: netbeans   文件: EditorUI.java
void setExtentPosition(int x, int y) {
    JViewport port = getParentViewport();
    if (port != null) {
        Point p = new Point(Math.max(x, 0), Math.max(y, 0));
        port.setViewPosition(p);
    }
}
 
源代码9 项目: netbeans   文件: AutoscrollSupport.java
/** Performs autoscroll operation.
*/
public void autoscroll(Point cursorLoc) {
    JViewport viewport = getViewport();

    if (viewport == null) {
        return;
    }

    Point viewPos = viewport.getViewPosition();
    int viewHeight = viewport.getExtentSize().height;
    int viewWidth = viewport.getExtentSize().width;

    // perform scrolling
    if ((cursorLoc.y - viewPos.y) < insets.top) {
        // scroll up
        viewport.setViewPosition(new Point(viewPos.x, Math.max(viewPos.y - scrollUnits.top, 0)));
    } else if (((viewPos.y + viewHeight) - cursorLoc.y) < insets.bottom) {
        // scroll down
        viewport.setViewPosition(
            new Point(viewPos.x, Math.min(viewPos.y + scrollUnits.bottom, comp.getHeight() - viewHeight))
        );
    } else if ((cursorLoc.x - viewPos.x) < insets.left) {
        // scroll left
        viewport.setViewPosition(new Point(Math.max(viewPos.x - scrollUnits.left, 0), viewPos.y));
    } else if (((viewPos.x + viewWidth) - cursorLoc.x) < insets.right) {
        // scroll right
        viewport.setViewPosition(
            new Point(Math.min(viewPos.x + scrollUnits.right, comp.getWidth() - viewWidth), viewPos.y)
        );
    }
}
 
源代码10 项目: Open-LaTeX-Studio   文件: PeriodicTasksService.java
private void drawPreview() {
    JPanel pdfImagePanel = pdfDisplay.drawPreviewOnJPanel();
   
    if (pdfImagePanel != null) {
        JViewport vp = jScrollPane.getViewport();
        Point p = vp.getViewPosition();
        vp.setView(pdfImagePanel);
        vp.setViewPosition(p);

    }
    
    jLabel.setText("of " + pdfDisplay.getTotalPages());
}
 
源代码11 项目: netbeans   文件: DebuggingViewComponent.java
private void adjustTreeScrollBar(int treeViewWidth) {
    DebugTreeView tView = getTreeView();
    if (tView == null) {
        scrollBarPanel.setVisible(false);
        return;
    }
    JViewport viewport = tView.getViewport();
    Point point = viewport.getViewPosition();
    if (point.y < 0) {
        viewport.setViewPosition(new Point(point.x, 0));
    }
    Dimension viewSize = viewport.getExtentSize();
    Dimension treeSize = viewport.getViewSize();
    if (treeViewWidth < 0) {
        treeViewWidth = treeSize.width;
    }
    int unitHeight = tView.getUnitHeight();
    if (unitHeight > 0) {
        JScrollBar sbar = mainScrollPane.getVerticalScrollBar();
        if (sbar.getUnitIncrement() != unitHeight) {
            sbar.setUnitIncrement(unitHeight);
        }
    }
    if (treeViewWidth <= viewSize.width) {
        scrollBarPanel.setVisible(false);
    } else {
        treeScrollBar.setMaximum(treeViewWidth);
        treeScrollBar.setVisibleAmount(viewSize.width);
        if (unitHeight > 0) {
            treeScrollBar.setUnitIncrement(unitHeight / 2);
        }
        treeScrollBar.setBlockIncrement(viewSize.width);
        scrollBarPanel.setVisible(true);
    } // else
}
 
源代码12 项目: netbeans   文件: DebuggingViewComponent.java
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
    DebugTreeView tView = getTreeView();
    if (tView == null) {
        return;
    }
    JViewport viewport = tView.getViewport();
    Point position = viewport.getViewPosition();
    viewport.setViewPosition(new Point(e.getValue(), position.y));
}
 
源代码13 项目: seaglass   文件: SeaGlassScrollPaneUI.java
private void hsbStateChanged(JViewport viewport, ChangeEvent e) {
    BoundedRangeModel model = (BoundedRangeModel) (e.getSource());
    Point p = viewport.getViewPosition();
    int value = model.getValue();
    if (scrollpane.getComponentOrientation().isLeftToRight()) {
        p.x = value;
    } else {
        int max = viewport.getViewSize().width;
        int extent = viewport.getExtentSize().width;
        int oldX = p.x;

        /*
         * Set new X coordinate based on "value".
         */
        p.x = max - extent - value;

        /*
         * If setValue() was called before "extent" was fixed, turn
         * setValueCalled flag on.
         */
        if ((extent == 0) && (value != 0) && (oldX == max)) {
            setValueCalled = true;
        } else {
            /*
             * When a pane without a horizontal scroll bar was reduced
             * and the bar appeared, the viewport should show the right
             * side of the view.
             */
            if ((extent != 0) && (oldX < 0) && (p.x == 0)) {
                p.x += value;
            }
        }
    }
    viewport.setViewPosition(p);
}
 
private void scroll() {
    Point point = new Point(0, (int) (jTextPane1.getSize().getHeight()));
    JViewport vp = jScrollPane1.getViewport();
    if (vp == null) {
        return;
    }
    vp.setViewPosition(point);
}
 
源代码15 项目: dsworkbench   文件: AttackCalculationPanel.java
private void scroll() {
    Point point = new Point(0, (int) (jTextPane1.getSize().getHeight()));
    JViewport vp = jScrollPane1.getViewport();
    if ((vp == null) || (point == null)) {
        return;
    }
    vp.setViewPosition(point);
}
 
源代码16 项目: dsworkbench   文件: RetimerCalculationPanel.java
private void scroll() {
    Point point = new Point(0, (int) (jTextPane1.getSize().getHeight()));
    JViewport vp = jScrollPane1.getViewport();
    if ((vp == null) || (point == null)) {
        return;
    }
    vp.setViewPosition(point);
}
 
private void scroll() {
    Point point = new Point(0, (int) (jTextPane1.getSize().getHeight()));
    JViewport vp = jScrollPane1.getViewport();
    if ((vp == null) || (point == null)) {
        return;
    }
    vp.setViewPosition(point);
}
 
源代码18 项目: CodenameOne   文件: HeaderlessColumnResizer.java
public void mouseDragged(MouseEvent e) {
  int mouseX = e.getX();

  TableColumn resizingColumn = table.getTableHeader().getResizingColumn();

  boolean headerLeftToRight =
    table.getTableHeader().getComponentOrientation().isLeftToRight();

  if (resizingColumn != null) {
    int oldWidth = resizingColumn.getWidth();
    int newWidth;
    if (headerLeftToRight) {
      newWidth = mouseX - mouseXOffset;
    } else {
      newWidth = mouseXOffset - mouseX;
    }
    resizingColumn.setWidth(newWidth);

    Container container;
    if ((table.getTableHeader().getParent() == null)
      || ((container = table.getTableHeader().getParent().getParent()) == null)
      || !(container instanceof JScrollPane)) {
      return;
    }

    if (!container.getComponentOrientation().isLeftToRight()
      && !headerLeftToRight) {
      if (table != null) {
        JViewport viewport = ((JScrollPane)container).getViewport();
        int viewportWidth = viewport.getWidth();
        int diff = newWidth - oldWidth;
        int newHeaderWidth = table.getWidth() + diff;

        /* Resize a table */
        Dimension tableSize = table.getSize();
        tableSize.width += diff;
        table.setSize(tableSize);

        /*
         * If this table is in AUTO_RESIZE_OFF mode and has a horizontal
         * scrollbar, we need to update a view's position.
         */
        if ((newHeaderWidth >= viewportWidth)
          && (table.getAutoResizeMode() == JTable.AUTO_RESIZE_OFF)) {
          Point p = viewport.getViewPosition();
          p.x =
            Math.max(0, Math.min(newHeaderWidth - viewportWidth, p.x + diff));
          viewport.setViewPosition(p);

          /* Update the original X offset value. */
          mouseXOffset += diff;
        }
      }
    }
  }
}
 
源代码19 项目: Freerouting   文件: BoardPanel.java
/**
 * Sets the position of the viewport
 */
void set_viewport_position(java.awt.Point p_position)
{
    JViewport viewport =  scroll_pane.getViewport();
    viewport.setViewPosition(p_position);
}
 
public void mouseDragged(MouseEvent e) {
  int mouseX = e.getX();

  TableColumn resizingColumn = table.getTableHeader().getResizingColumn();

  boolean headerLeftToRight =
    table.getTableHeader().getComponentOrientation().isLeftToRight();

  if (resizingColumn != null) {
    int oldWidth = resizingColumn.getWidth();
    int newWidth;
    if (headerLeftToRight) {
      newWidth = mouseX - mouseXOffset;
    } else {
      newWidth = mouseXOffset - mouseX;
    }
    resizingColumn.setWidth(newWidth);

    Container container;
    if ((table.getTableHeader().getParent() == null)
      || ((container = table.getTableHeader().getParent().getParent()) == null)
      || !(container instanceof JScrollPane)) {
      return;
    }

    if (!container.getComponentOrientation().isLeftToRight()
      && !headerLeftToRight) {
      if (table != null) {
        JViewport viewport = ((JScrollPane)container).getViewport();
        int viewportWidth = viewport.getWidth();
        int diff = newWidth - oldWidth;
        int newHeaderWidth = table.getWidth() + diff;

        /* Resize a table */
        Dimension tableSize = table.getSize();
        tableSize.width += diff;
        table.setSize(tableSize);

        /*
         * If this table is in AUTO_RESIZE_OFF mode and has a horizontal
         * scrollbar, we need to update a view's position.
         */
        if ((newHeaderWidth >= viewportWidth)
          && (table.getAutoResizeMode() == JTable.AUTO_RESIZE_OFF)) {
          Point p = viewport.getViewPosition();
          p.x =
            Math.max(0, Math.min(newHeaderWidth - viewportWidth, p.x + diff));
          viewport.setViewPosition(p);

          /* Update the original X offset value. */
          mouseXOffset += diff;
        }
      }
    }
  }
}