微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javax.swing.JViewport的实例源码

项目:incubator-netbeans    文件UIUtils.java   
@Override
public void focusGained(FocusEvent e) {
    if (e.istemporary()) {
        return;
    }
    Component cmp = e.getComponent();
    if(cmp instanceof JComponent) {
        JViewport vp = getViewport(container);
        if(vp == null) {
            return;
        }
        Rectangle vr = vp.getViewRect();
        Point p = SwingUtilities.convertPoint(cmp.getParent(),cmp.getLocation(),container);
        final Rectangle r = new Rectangle(p,cmp.getSize());
        if(vr.intersects(r)) {
            return; 
        }
        container.scrollRectToVisible(r);
    }
}
项目:incubator-netbeans    文件EditorUI.java   
/** Get position of the component extent. The (x,y) are set to (0,0) if there's
* no viewport or (-x,-y) if there's one.
*/
public Rectangle getExtentBounds(Rectangle r) {
    if (r == null) {
        r = new Rectangle();
    }
    if (component != null) {
        JViewport port = getParentViewport();
        if (port != null) {
            Point p = port.getViewPosition();
            r.width = port.getWidth();
            r.height = port.getHeight();
            r.x = p.x;
            r.y = p.y;
        } else { // no viewport
            r.setBounds(component.getVisibleRect());
        }
    }
    return r;
}
项目:incubator-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);
        }
    }
}
项目:incubator-netbeans    文件ComponentPeer.java   
private int[] computeVisibleSpan() {
    Component parent = pane.getParent();

    if (parent instanceof JlayeredPane) {
        parent = parent.getParent();
    }

    if (parent instanceof JViewport) {
        JViewport vp = (JViewport) parent;

        Point start = vp.getViewPosition();
        Dimension size = vp.getExtentSize();
        Point end = new Point((int) (start.getX() + size.getWidth()),(int) (start.getY() + size.getHeight()));

        int startPosition = pane.viewToModel(start);
        int endPosition = pane.viewToModel(end);

        if (parentWithListener != vp) {
            vp.addchangelistener(WeakListeners.change(this,vp));
            parentWithListener = vp;
        }
        return new int[] {startPosition,endPosition};
    }

    return new int[] {0,pane.getDocument().getLength()};
}
项目:incubator-netbeans    文件BaseTable.java   
protected int getVisibleRowCount() {
    int rowCount = getRowCount();
    int rowHeight = getRowHeight();

    if ((rowCount == 0) || (rowHeight == 0)) {
        return 0;
    }

    if (getParent() instanceof JViewport) {
        JViewport jvp = (JViewport) getParent();

        // +1 to return also half-displayed rows (issue 53660)
        int result = Math.min(rowCount,(jvp.getExtentSize().height / rowHeight) + 1);

        return result;
    } else {
        return Math.min(rowCount,getHeight() / rowHeight);
    }
}
项目:incubator-netbeans    文件BaseTable.java   
private void hideSearchField() {
    if (searchField == null) {
        return;
    }

    searchpanel.setVisible(false);

    if (getParent() instanceof JViewport && null != viewportListener ) {
        JViewport jvp = (JViewport) getParent();
        jvp.removechangelistener( viewportListener );
        viewportListener = null;
    }

    getParent().removeComponentListener(searchField);
    if (searchpanel.getParent() != null) {
        searchpanel.getParent().remove(searchpanel);
    }

    paintSelectionRow();
}
项目:incubator-netbeans    文件PalettePanel.java   
/**
 * Adds the search field to the tree.
 */
private void displaySearchField(char initialChar) {
    if( null != searchpanel )
        return;
    JViewport vp = scrollPane.getViewport();
    originalScrollMode = vp.getScrollMode();
    vp.setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
    searchTextField.setFont(getFont());
    searchTextField.setText(String.valueOf(initialChar));
    prepareSearchPanel();
    scrollPane.add(searchpanel);
    invalidate();
    revalidate();
    repaint();
    searchTextField.requestFocus();
}
项目:incubator-netbeans    文件ETable.java   
/**
 * This method update mouse listener on the scrollPane if it is needed.
 * It also recomputes the model of searchCombo. Both actions are needed after
 * the set of visible columns is changed.
 */
void updateColumnSelectionMouseListener() {
    Container p = getParent();
    if (p instanceof JViewport) {
        Container gp = p.getParent();
        if (gp instanceof JScrollPane) {
            JScrollPane scrollPane = (JScrollPane)gp;
            // Make certain we are the viewPort's view and not,for
            // example,the rowHeaderView of the scrollPane -
            // an implementor of fixed columns might do this.
            JViewport viewport = scrollPane.getViewport();
            if (viewport == null || viewport.getView() != this) {
                return;
            }
            scrollPane.removeMouseListener(columnSelectionMouseListener);
            if (getColumnModel().getColumnCount() == 0) {
                scrollPane.addMouseListener(columnSelectionMouseListener);
            }
        }
    }
    if (searchCombo != null) {
        searchCombo.setModel(getSearchComboModel());
    }
}
项目:AWGW    文件GridPanel.java   
/**
 * Calculate the cell size to use given the current viewable region and the
 * the number of rows and columns in the grid. We use the largest
 * cellSize that will fit in the viewable region,bounded to be at least the
 * parameter minSize.
 */
private void recalculateCellSize(int minSize) {
    if (numRows == 0 || numCols == 0) {
        cellSize = 0;
    } else {
        JViewport vp = getEnclosingViewport();
        Dimension viewableSize = (vp != null) ? vp.getSize() : getSize();
        int desiredCellSize = Math.min(
                (viewableSize.height - extraHeight()) / numRows,(viewableSize.width - extraWidth()) / numCols) - 1;
        // Now we want to approximate this with
        // DEFAULT_CELL_SIZE * Math.pow(2,k)
        cellSize = DEFAULT_CELL_SIZE;
        if (cellSize <= desiredCellSize)
            while (2 * cellSize <= desiredCellSize)
                cellSize *= 2;
        else
            while (cellSize / 2 >= Math.max(desiredCellSize,MIN_CELL_SIZE))
                cellSize /= 2;
    }
    revalidate();
}
项目:jdk8u-jdk    文件Test6526631.java   
public void validateThird() {
    JViewport viewport = this.pane.getViewport();
    JScrollBar scroller = this.pane.getHorizontalScrollBar();
    if (!scroller.getComponentOrientation().equals(ComponentOrientation.RIGHT_TO_LEFT)) {
        throw new Error("unexpected component orientation");
    }
    int value = scroller.getValue();
    if (value != 0) {
        throw new Error("unexpected scroll value");
    }
    int extent = viewport.getExtentSize().width;
    if (extent != scroller.getVisibleAmount()) {
        throw new Error("unexpected visible amount");
    }
    int size = viewport.getViewSize().width;
    if (size != scroller.getMaximum()) {
        throw new Error("unexpected maximum");
    }
    int pos = size - extent - value;
    if (pos != viewport.getViewPosition().x) {
        throw new Error("unexpected position");
    }
}
项目:incubator-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))
        );
    }
}
项目:Logisim    文件LayoutPopupManager.java   
private void showPopup(Set<AppearancePort> portObjects) {
    dragStart = null;
    CircuitState circuitState = canvas.getCircuitState();
    if (circuitState == null)
        return;
    ArrayList<Instance> ports = new ArrayList<Instance>(portObjects.size());
    for (AppearancePort portObject : portObjects) {
        ports.add(portObject.getPin());
    }

    hideCurrentPopup();
    LayoutThumbnail layout = new LayoutThumbnail();
    layout.setCircuit(circuitState,ports);
    JViewport owner = canvasPane.getViewport();
    Point ownerLoc = owner.getLocationOnScreen();
    Dimension ownerDim = owner.getSize();
    Dimension layoutDim = layout.getPreferredSize();
    int x = ownerLoc.x + Math.max(0,ownerDim.width - layoutDim.width - 5);
    int y = ownerLoc.y + Math.max(0,ownerDim.height - layoutDim.height - 5);
    PopupFactory factory = PopupFactory.getSharedInstance();
    Popup popup = factory.getPopup(canvasPane.getViewport(),layout,x,y);
    popup.show();
    curPopup = popup;
    curPopupTime = System.currentTimeMillis();
}
项目:openjdk-jdk10    文件JViewPortbackingStoreImageTest.java   
private static JComponent createComponent() {
    createStyles();
    for (int i = 0; i < data.length; i++) {
        Paragraph p = data[i];
        addParagraph(p);
    }

    JTextPane textPane = new JTextPane(doc);

    JScrollPane scroller = new JScrollPane();
    JViewport port = scroller.getViewport();
    port.setScrollMode(JViewport.backingSTORE_SCROLL_MODE);
    port.add(textPane);

    return scroller;
}
项目:Tarski    文件SchemaGraphComponent.java   
/**
 * 
 */
public int getColumnLocation(mxCellState edge,mxCellState terminal,int column) {
  Component[] c = components.get(terminal.getCell());
  int y = 0;

  if (c != null) {
    for (int i = 0; i < c.length; i++) {
      if (c[i] instanceof JTableRenderer) {
        JTableRenderer vertex = (JTableRenderer) c[i];

        JTable table = vertex.table;
        JViewport viewport = (JViewport) table.getParent();
        double dy = -viewport.getViewPosition().getY();
        y = (int) Math.max(terminal.getY() + 22,terminal.getY() + Math.min(terminal.getHeight() - 20,30 + dy + column * 16));
      }
    }
  }

  return y;
}
项目:jmt    文件ExactTable.java   
@Override
protected void unconfigureEnclosingScrollPane() {
    Container p = getParent();
    if (p instanceof JViewport) {
        Container gp = p.getParent();
        if (gp instanceof JScrollPane) {
            JScrollPane scrollPane = (JScrollPane) gp;
            // Make certain we are the viewPort's view and not,the rowHeaderView of the scrollPane -
            // an implementor of fixed columns might do this.
            JViewport viewport = scrollPane.getViewport();
            if (viewport == null || viewport.getView() != this) {
                return;
            }
            scrollPane.setColumnHeaderView(null);
            scrollPane.setRowHeaderView(null);

            viewport.removechangelistener(scrollListener);
            rowHeader.uninstall();
        }
    }
}
项目:AWGW    文件GridPanel.java   
/**
 * Sets the grid being displayed. Reset the cellSize to be the
 * largest that fits the entire grid in the current visible area (use
 * default if grid is too large).
 *
 * @param gr the grid to display
 */
public void setGrid(Grid<?> gr) {
    currentLocation = new Location(0,0);
    JViewport vp = getEnclosingViewport(); // before changing,reset
    // scroll/pan position
    if (vp != null)
        vp.setViewPosition(new Point(0,0));

    grid = gr;
    originRow = originCol = 0;

    if (grid.getNumRows() == -1 && grid.getNumCols() == -1) {
        numRows = numCols = 2000;
        // This determines the "virtual" size of the pan world
    } else {
        numRows = grid.getNumRows();
        numCols = grid.getNumCols();
    }
    recalculateCellSize(MIN_CELL_SIZE);
}
项目:QN-ACTR-Release    文件ExactTable.java   
@Override
protected void unconfigureEnclosingScrollPane() {
    Container p = getParent();
    if (p instanceof JViewport) {
        Container gp = p.getParent();
        if (gp instanceof JScrollPane) {
            JScrollPane scrollPane = (JScrollPane) gp;
            // Make certain we are the viewPort's view and not,the rowHeaderView of the scrollPane -
            // an implementor of fixed columns might do this.
            JViewport viewport = scrollPane.getViewport();
            if (viewport == null || viewport.getView() != this) {
                return;
            }
            scrollPane.setColumnHeaderView(null);
            scrollPane.setRowHeaderView(null);

            viewport.removechangelistener(scrollListener);
            rowHeader.uninstall();
        }
    }

}
项目:org.alloytools.alloy    文件GraphViewer.java   
/** Repaint this component. */
public void alloyRepaint() {
    Container c = getParent();
    while (c != null) {
        if (c instanceof JViewport)
            break;
        else
            c = c.getParent();
    }
    setSize((int) (graph.getTotalWidth() * scale),(int) (graph.getTotalHeight() * scale));
    if (c != null) {
        c.invalidate();
        c.repaint();
        c.validate();
    } else {
        invalidate();
        repaint();
        validate();
    }
}
项目:JavaGraph    文件ZoomMenu.java   
@Override
public void actionPerformed(ActionEvent evt) {
    Component component = ZoomMenu.this.jgraph.getParent();
    while (component != null && !(component instanceof JViewport)) {
        component = component.getParent();
    }
    if (component != null) {
        final JViewport viewport = (JViewport) component;
        Rectangle2D graphBounds = ZoomMenu.this.jgraph.getGraphBounds();
        Dimension viewportBounds = viewport.getExtentSize();
        double scale =
            Math.min(viewportBounds.width / graphBounds.getWidth(),viewportBounds.height
                / graphBounds.getHeight());
        ZoomMenu.this.jgraph.setScale(Math.min(scale,1.0));
        ZoomMenu.this.jgraph.scrollRectToVisible(graphBounds.getBounds());
        setActionsEnabled();
    }
}
项目:Equella    文件TablePasteAdapter.java   
public static JTable createrawTable(TableModel model)
{
    JTable table = new JTable(model)
    {
        @Override
        public boolean getScrollableTracksViewportHeight()
        {
            // fetch the table's parent
            Container viewport = getParent();

            // if the parent is not a viewport,calling this isn't useful
            if( !(viewport instanceof JViewport) )
            {
                return false;
            }

            // return true if the table's preferred height is smaller
            // than the viewport height,else false
            return getPreferredSize().height < viewport.getHeight();
        }
    };
    return table;
}
项目:openjdk-jdk10    文件Test6526631.java   
public void validateThird() {
    JViewport viewport = this.pane.getViewport();
    JScrollBar scroller = this.pane.getHorizontalScrollBar();
    if (!scroller.getComponentOrientation().equals(ComponentOrientation.RIGHT_TO_LEFT)) {
        throw new Error("unexpected component orientation");
    }
    int value = scroller.getValue();
    if (value != 0) {
        throw new Error("unexpected scroll value");
    }
    int extent = viewport.getExtentSize().width;
    if (extent != scroller.getVisibleAmount()) {
        throw new Error("unexpected visible amount");
    }
    int size = viewport.getViewSize().width;
    if (size != scroller.getMaximum()) {
        throw new Error("unexpected maximum");
    }
    int pos = size - extent - value;
    if (pos != viewport.getViewPosition().x) {
        throw new Error("unexpected position");
    }
}
项目:powertext    文件RTextAreaEditorKit.java   
@Override
public void actionPerformedImpl(ActionEvent e,RTextArea textArea) {
    Container parent = textArea.getParent();
    if (parent instanceof JViewport) {
        JViewport viewport = (JViewport)parent;
        Point p = viewport.getViewPosition();
        p.y += delta*textArea.getLineHeight();
        if (p.y<0) {
            p.y = 0;
        }
        else {
            Rectangle viewRect = viewport.getViewRect();
            int visibleEnd = p.y + viewRect.height;
            if (visibleEnd>=textArea.getHeight()) {
                p.y = textArea.getHeight() - viewRect.height;
            }
        }
        viewport.setViewPosition(p);
    }
}
项目:incubator-netbeans    文件UIUtils.java   
private static JViewport getViewport(Container c) {
    if(c == null) {
        return null;
    }
    if(c instanceof JScrollPane) {
        return ((JScrollPane) c).getViewport();
    }
    return getViewport(c.getParent());
}
项目:incubator-netbeans    文件AnnotationHolder.java   
private void addViewportListener(JEditorPane pane) {
    Container parent = pane.getParent();

    if (parent instanceof JlayeredPane) {
        parent = parent.getParent();
    }

    if (parent instanceof JViewport) {
        JViewport viewport = (JViewport) parent;

        viewport.addchangelistener(WeakListeners.change(AnnotationHolder.this,viewport));
    }
}
项目:incubator-netbeans    文件HintsUI.java   
private int getUsableWidth(JTextComponent component) {
    Container parent = component.getParent();
    if (parent instanceof JlayeredPane) {
        parent = parent.getParent();
    }
    return (parent instanceof JViewport)
        ? ((JViewport)parent).getExtentSize().width
        : component.getSize().width;
}
项目:incubator-netbeans    文件ListCompletionView.java   
public @Override void paintComponent(Graphics g) {
            // Although the JScrollPane without horizontal scrollbar
            // is explicitly set with a preferred size
            // it does not force its items with the only width into which
            // they can render (and still leaves them with the preferred width
            // of the widest item).
            // Therefore the item's render width is taken from the viewport's width.
            int itemRenderWidth = ((JViewport)ListCompletionView.this.getParent()).getWidth();
            Color bgColor = getBackground();
            Color fgColor = getForeground();
            int height = getHeight();

            // Clear the background
            g.setColor(bgColor);
            g.fillRect(0,itemRenderWidth,height);
            g.setColor(fgColor);

            // Render the item
            renderHtml(fix,g,ListCompletionView.this.getFont(),getForeground(),getHeight(),selected);

//            if (separator) {
//                g.setColor(Color.gray);
//                g.drawLine(0,0);
//                g.setColor(fgColor);
//            }
        }
项目:incubator-netbeans    文件EditorUI.java   
/** Is the parent of some editor component a viewport */
private JViewport getParentViewport() {
    Component pc = component.getParent();
    if (pc instanceof JlayeredPane) {
        pc = pc.getParent();
    }
    return (pc instanceof JViewport) ? (JViewport)pc : null;
}
项目:incubator-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);
    }
}
项目:incubator-netbeans    文件PopupManager.java   
/** Variation of the method for computing the bounds
 * for the concrete view component. As the component can possibly
 * be placed in a scroll pane it's first necessary
 * to translate the cursor bounds and also translate
 * back the resulting popup bounds.
 * @param popup  popup panel to be displayed
 * @param view component over which the popup is displayed.
 * @param cursorBounds the bounds of the caret or mouse cursor
 *    relative to the upper-left corner of the visible view.
 * @param placement where to place the popup panel according to
 *    the cursor position.
 * @return bounds of popup panel relative to the upper-left corner
 *    of the underlying view component.
 *    <CODE>null</CODE> if there is no place to display popup.
 */
protected static Rectangle computeBounds(JComponent popup,JComponent view,Rectangle cursorBounds,Placement placement,HorizontalBounds horizontalBounds) {

    if (horizontalBounds == null) horizontalBounds = ViewPortBounds;

    Rectangle ret;
    Component viewParent = view.getParent();

    if (viewParent instanceof JlayeredPane) {
        viewParent = viewParent.getParent();
    }

    if (viewParent instanceof JViewport) {
        Rectangle viewBounds = ((JViewport)viewParent).getViewRect();

        Rectangle translatedCursorBounds = (Rectangle)cursorBounds.clone();
        if (placement != FixedPoint) {
            translatedCursorBounds.translate(-viewBounds.x,-viewBounds.y);
        }

        ret = computeBounds(popup,viewBounds.width,viewBounds.height,translatedCursorBounds,placement,horizontalBounds);

        if (ret != null) { // valid bounds
            ret.translate(viewBounds.x,viewBounds.y);
        }

    } else { // not in scroll pane
        ret = computeBounds(popup,view.getWidth(),view.getHeight(),cursorBounds,placement);
    }

    return ret;
}
项目:Tarski    文件GraphViewer.java   
/** Repaint this component. */
public void alloyRepaint() {
    Container c=getParent();
    while(c!=null) { if (c instanceof JViewport) break; else c=c.getParent(); }
    setSize((int)(graph.getTotalWidth()*scale),(int)(graph.getTotalHeight()*scale));
    if (c!=null) { c.invalidate(); c.repaint(); c.validate(); } else { invalidate(); repaint(); validate(); }
}
项目:incubator-netbeans    文件ValidityAwarePanel.java   
@Override
public Dimension getPreferredSize() {
    if (getParent() instanceof JViewport) {
        return getMinimumSize();
    } else {
        return super.getPreferredSize();
    }
}
项目:AWGW    文件GridPanel.java   
/**
 * Pans the display back to the origin,so that 0,0 is at the the upper
 * left of the visible viewport.
 */
public void recenter(Location loc) {
    originRow = loc.getRow();
    originCol = loc.getCol();
    repaint();
    JViewport vp = getEnclosingViewport();
    if (vp != null) {
        if (!isPannableunbounded()
                || !(vp instanceof PseudoInfiniteViewport))
            vp.setViewPosition(pointForLocation(loc));
        else
            showPanTip();
    }
}
项目:incubator-netbeans    文件AntSanityTest.java   
/**
 * Takes GUI snapshot of debugged application.
 */
public void takeGUISnapshot() throws InterruptedException {
    new Action("Debug|Debug Project (debugTestProjectAnt)",null).perform();
    Thread.sleep(3000); // Wait 3 seconds. Sometimes starting debugging session was slow.
    OutputTabOperator op = new OutputTabOperator(DEBUGGER_CONSOLE);
    assertEquals("User program running",op.getLine(op.getLineCount() - 2));
    new TakeGUISnapshotAction().perform();
    TopComponentOperator guiSnapshot = new TopComponentOperator("Snapshot of \"Memory View\"");
    assertEquals(guiSnapshot.getComponent(1).getName(),"Snapshot Zoom Toolbar");
    JViewport viewPort = (JViewport) guiSnapshot.getComponent(0).getComponentAt(10,10);
    assertTrue(viewPort.getComponent(0).toString().startsWith("org.netbeans.modules.debugger.jpda.visual.ui.ScreenshotComponent$ScreenshotCanvas"));
    new FinishDebuggerAction().perform();
}
项目:incubator-netbeans    文件ScrollableJPanel.java   
@Override
public boolean getScrollableTracksViewportHeight() {
    if (getParent() instanceof JViewport) {
        return (((JViewport) getParent()).getHeight() > getPreferredSize().height);
    }

    return false;
}
项目:incubator-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,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)
        );
    }
}
项目:incubator-netbeans    文件PSheet.java   
private JScrollPane createScrollPane(Component inner) {
    JScrollPane result = new JScrollPane(inner);
    JViewport vp = result.getViewport();
    vp.addMouseListener(this);

    MarginViewportUI ui = (MarginViewportUI) MarginViewportUI.createUI(vp);
    vp.setUI(ui);
    ui.setMarginPainted(marginPainted);
    ui.setMarginColor(marginColor);
    ui.setEmptyString(emptyString);
    result.setBorder(BorderFactory.createEmptyBorder());
    result.setViewportBorder(result.getBorder());

    return result;
}
项目:incubator-netbeans    文件MarginViewportUI.java   
public void uninstallUI(JComponent vp) {
    JViewport jv = (JViewport) vp;
    Component[] c = jv.getComponents();

    for (int i = 0; i < c.length; i++) {
        c[i].removeComponentListener(this);
    }

    jv.removeContainerListener(this);
}
项目:incubator-netbeans    文件MarginViewportUI.java   
/** Overridden to draw "no properties" if necessary */
public void paint(Graphics g,JComponent c) {
    Component view = ((JViewport) c).getView();

    if (view != null) {
        lastKNownSize = view.getSize();
    }

    if (stringWidth == -1) {
        calcStringSizes(c.getFont(),g);
    }

    //Update will have set paintnoprops to the correct value
    if (shouldPaintEmptyMessage()) {
        //We need to paint centered "<No Properties>" text
        g.setFont(c.getFont());
        g.setColor(c.getForeground());

        Rectangle r = getEmptyMessageBounds();

        //See if we really need to do any painting
        if (g.hitClip(r.x,r.y,r.width,r.height)) {
            //Paint the string
            g.drawString(emptyString,r.x,r.y + ascent);
        }
    }
}
项目:incubator-netbeans    文件BaseTable.java   
protected int getFirstVisibleRow() {
    if (getParent() instanceof JViewport) {
        JViewport jvp = (JViewport) getParent();

        return rowAtPoint(jvp.getViewPosition());
    } else {
        Insets ins = getInsets();

        return rowAtPoint(new Point(ins.left,ins.top));
    }
}
项目:AWGW    文件GridPanel.java   
/**
 * Shows a tool tip over the upper left corner of the viewport with the
 * contents of the pannable view's pannable tip text (typically a string
 * identifiying the corner point). Tip is removed after a short delay.
 */
public void showPanTip() {
    String tipText = null;
    Point upperLeft = new Point(0,0);
    JViewport vp = getEnclosingViewport();
    if (!isPannableunbounded() && vp != null)
        upperLeft = vp.getViewPosition();
    Location loc = locationForPoint(upperLeft);
    if (loc != null)
        tipText = getToolTipText(loc);

    showTip(tipText,getLocation());
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。