Is JViewport scrollRectToVisible API Javadoc ambigious or just plain wrong?

I've been working on a JPanel derived class that demonstrates how to position the JViewport of a JScrollPane using JViewport's scrollRectToVisible method. I've got it working, but only after trial & error regarding the scrollRectToVisible's interpretation of the Rectangle input parameter.
The issue is that the JDK API javadocs gave me the impression that the Rectangle fields "x" and "y" would specify the (x,y) coordinates of the upper right corner in absolute client area coordinates. The impression resulted from past usage of Rectangles where the "x" and "y" fields were always absolute coordinates. But my trial & error revealed that the "x" and"y" fields in the Rectangle are interpreted by scrollRectToVisible as signed relative deltas within the client area, not absolute client area coordinates.
Here is the javadoc excerpt fom class JViewport: It does not really say how the Rectangle is interpreted...
public void scrollRectToVisible(Rectangle contentRect)+
Scrolls the view so that Rectangle within the view becomes visible.+
This attempts to validate the view before scrolling if the view is currently not valid - isValid returns false. To avoid excessive validation when the containment hierarchy is being created this will not validate if one of the ancestors does not have a peer, or there is no validate root ancestor, or one of the ancestors is not a Window or Applet.+
Note that this method will not scroll outside of the valid viewport; for example, if contentRect is larger than the viewport, scrolling will be confined to the viewport's bounds.+
It says the "*Scrolls the view so that Rectangle within the view becomes visible.*"
h3. *{color:#ff6600}How would you interpret this? Is this 'wrong by omission' or am I all wet?{color}*
Here is the relevant chunk of code that operates by creating a Rectangle with deltas, not absolute coordinates. It works. The whole class is too big for this forum post, but I can put the JAR file up for download if requested...
public class BigPanel extends JPanel implements MouseListener, MouseMotionListener {
     // Data defs and constructor omitted for brevity...
     private void scrollView() {
          SwingUtilities.invokeLater(new Runnable() {
               @Override
               public void run() {
                    //scrollRectToVisible(dxyRect); // WRONG, compiles OK, jumps around but mouse response is all wrong.
                    //scrollPane.scrollRectToVisible(dxyRect);  // WRONG, compiles OK, but does nothing!!!
                    scrollPane.getViewport().scrollRectToVisible(dxyRect);  // RIGHT!!!
     private void setDeltaXY(int mouseX, int mouseY) {
          // Use the base (x,y) coordinate of the view port rectangle
          // when calculating mouse coordinates (mx,my) relative to the
          // visible view port.
          Rectangle viewRect = scrollPane.getViewport().getViewRect();
          int mx = mouseX - viewRect.x;
          int my = mouseY - viewRect.y;
          // Use center of the view port rectangle as the point to subtract
          // from the mouse relative coordinate (mx,my) to calculate the
          // movement delta (dx,dy).
          int dx = mx - viewRect.width / 2;
          int dy = my - viewRect.height / 2;
          // Now create a rectangle with the delta (dx,dy) and the view port
          // (width,height) as the input to scrollRectToVisible.
          // Note that the (x,y) in the rectangle is not an absolute unsigned
          // (x,y) coordinate, but a signed relative delta (dx,dy),
          // which scrollRectToVisible uses to as the relative amount to shift.
          dxyRect = new Rectangle(dx, dy, viewRect.width, viewRect.height);
     private void moveView(MouseEvent e) {
          setDeltaXY(e.getX(), e.getY());
          scrollView();
     @Override
     public void mouseClicked(MouseEvent e) {
          info("mouseClicked");
          moveView(e);
     @Override
     public void mousePressed(final MouseEvent e) {
          info("mousePressed");
          setDeltaXY(e.getX(), e.getY());
          startRepeat();
     @Override
     public void mouseReleased(MouseEvent e) {
          info("mouseReleased");
          cancelRepeat();
     / *(non-Javadoc)*
@see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
     @Override
     public void mouseDragged(MouseEvent e) {
          setDeltaXY(e.getX(), e.getY());
}

I'm Barkin up the wrong tree, Huh?I think Darryl is right.
I tried it as you suggested, on the JScrollpane instance, not the JScrollpane's JViewport. The results were not what I expected of absolute or relative coordinate systems.You got it wrong, try calling scrollRectToVisible on the component being scrolled i.e. viewport view.
I have written a class which demonstrates working of scrollRectToVisible, that may help you:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.*;
* @author talha
@SuppressWarnings("serial")
public class ViewportExample extends JFrame {
     private JPanel scrolledPanel = new JPanel() {
          Dimension SIZE = new Dimension(1500, 1000);
          GradientPaint paint = new GradientPaint(0, 0, Color.WHITE, SIZE.width,
                    SIZE.height, Color.BLACK);
          protected void paintComponent(java.awt.Graphics g) {
               Graphics2D g2 = (Graphics2D) g;
               g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                         RenderingHints.VALUE_ANTIALIAS_ON);
               g2.setPaint(paint);
               g2.fillRect(0, 0, getWidth(), getHeight());
               if (rect != null) {
                    g2.setPaint(new GradientPaint(rect.x, rect.y,
                                        Color.BLACK, rect.x + rect.width, rect.y
                                                  + rect.height, Color.WHITE));
                    g2.fill(rect);
                    g2.setColor(Color.WHITE);
                    g2.setStroke(new BasicStroke(2));
                    g2.draw(rect);
                    g2.drawString("You wanted this rectangle to be visible",
                              rect.x + 5, rect.y + 20);
                    g2.setColor(Color.BLACK);
                    g2.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT,
                              BasicStroke.JOIN_BEVEL, 3, new float[] { 3 }, 1.0f));
                    g2.drawLine(0, rect.y, rect.x, rect.y);
                    g2.drawLine(0, rect.y + rect.height, rect.x, rect.y
                              + rect.height);
                    g2.drawLine(rect.x, 0, rect.x, rect.y);
                    g2.drawLine(rect.x + rect.width, 0, rect.x + rect.width,
                                        rect.y);
          public Dimension getPreferredSize() {
               return SIZE;
     private Rectangle rect;
     private JComponent verticalRule = new JComponent() {
          protected void paintComponent(java.awt.Graphics g) {
               Rectangle clip = g.getClipBounds();
               Graphics2D g2 = (Graphics2D) g;
               g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                         RenderingHints.VALUE_ANTIALIAS_ON);
               g2.setColor(Color.BLACK);
               g2.fill(clip);
               int start = clip.y / 100 * 100;
               int end = ((clip.y + clip.height) / 100 + 1) * 100;
               g2.setColor(Color.WHITE);
               for (int i = start; i < end; i += 100) {
                    g2.drawLine(20, i, 30, i);
                    g2.drawString(Integer.toString(i), 2, i + 15);
        private JComponent horizontalRule = new JComponent() {
          protected void paintComponent(java.awt.Graphics g) {
               Rectangle clip = g.getClipBounds();
               Graphics2D g2 = (Graphics2D) g;
               g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                         RenderingHints.VALUE_ANTIALIAS_ON);
               g2.setColor(Color.BLACK);
               g2.fill(clip);
               int start = clip.x / 100 * 100;
               int end = ((clip.x + clip.width) / 100 + 1) * 100;
               g2.setColor(Color.WHITE);
               for (int i = start; i < end; i += 100) {
                    g2.drawLine(i, 20, i, 30);
                    g2.drawString(Integer.toString(i), i + 2, 25);
     public ViewportExample() {
          super("Viewport Example");
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          JScrollPane pane = new JScrollPane(scrolledPanel);
          verticalRule.setPreferredSize(new Dimension(30, 1000));
          pane.setRowHeaderView(verticalRule);
          horizontalRule.setPreferredSize(new Dimension(1500, 30));
          pane.setColumnHeaderView(horizontalRule);
          pane.setBackground(Color.DARK_GRAY);
          add(pane, BorderLayout.CENTER);
          add(getSouthPanel(), BorderLayout.SOUTH);
          setSize(700, 600);
          // setExtendedState(MAXIMIZED_BOTH);
          setLocationRelativeTo(null);
     private JPanel getSouthPanel() {
          JPanel panel = new JPanel();
          final JTextField field = new JTextField(30);
          field.addActionListener(new ActionListener() {
               Pattern pattern = Pattern
                         .compile("\\s*((?:-)?\\d+)\\s+((?:-)?\\d+)\\s+(\\d+)\\s+(\\d+)\\s*");
               @Override
               public void actionPerformed(ActionEvent e) {
                    Matcher matcher = pattern.matcher(field.getText());
                    if (matcher.matches()) {
                         rect = new Rectangle(Integer.parseInt(matcher.group(1)),
                                   Integer.parseInt(matcher.group(2)), Integer
                                             .parseInt(matcher.group(3)), Integer
                                             .parseInt(matcher.group(4)));
                         //-- mark this --
                         scrolledPanel.scrollRectToVisible(rect);
                         scrolledPanel.repaint();
                    } else {
                         Toolkit.getDefaultToolkit().beep();
          panel.add(new JLabel("Rectangle: (Formatted as : x y width height) "));
          panel.add(field);
          return panel;
     public static void main(String... args) {
          SwingUtilities.invokeLater(new Runnable() {
               @Override
               public void run() {
                    new ViewportExample().setVisible(true);
} This code has many irrelevant things but I added them just to learn new things, but they help in making overall application more usable. Have fun :)
Try typing "300 400 400 300" in the text field, hit Enter and see the result. Try out other values...
Thanks!

Similar Messages

  • Consolidated Network Issues: Something is Just Plain Wrong (or Maybe Right)

    I've been following this forum as for the first time since I can remember I am having network problems. Obviously many more people are as well.
    I have a MBP running 10.5.1 and an iBook G4 w/10.5, and two identical MacMinis w/10.4.10 and 10.4.11. I usually plug in the MBP and the Mini w/10.4.10 is also wired. The iBook and the Mini w/10.4.11 are strictly wireless. There are also a NAS device, and a Linux server on wires, a Wii, TiVO and occasionally a DS on wireless. There are two Linksys WRT54G's running HyperWRT 2.1b1, a Linksys Vonage router, a D-Link DPR-1260 print server, and we connect to the net via Comcast. Oh yeah, everything has a static IP.
    So, anyhow, my wireless, SMB, NFS, Bonjour, LPD, AFP, and almost all other services I regularly use work perfectly fine on all the machines. I've noticed virtually no difference on the machines running 10.5.* in these areas.
    My glaring problem is that on either machine running 10.5.* I cannot access some of the web server based functions on my DPR-1260 print server. Loading always chokes on certain pages. It always seems to stall on a particular JavaScript file linked in the header. I have spent far too much time already trying to figure this out so I'm giving up since it doesn't pay the bills. However, I think my experience is worth sharing because it points to some fundamental issue with 10.5.* that I can't nail down.
    To answer the obvious questions: Yes, JavaScript is active in the browser(s). This affects every browser. WebKit based, Gecko, Opera, iCab, and I even tried IE 5.2.3 (which otherwise still works as gloriously as ever on 10.5). Now when I disable JavaScript the pages load but of course are useless since most of the functionality is in the JS. I have tried cURL and wget to download the pages and both hang. I have managed to recursively download the whole site using wget and all the files that seem to stall out have the string 400 on it's own line every 20-30 lines. I have also noticed an occasional 100 and 304. Also, all the affected files end with a 0. None of these strings show up when I cleanly download the files. -- Newsflash -- I realized I had not covered all the bases so I did a recursive download with wget on both my Linux box running RH 7.2 and CentOS 5 running under Parallels. Same deal with the number strings showing up in various files. I do not have a Linux machine running X Windows so I cannot test this on a Linux browser with JavaScript. Lynx and links load the pages just fine, as with an OS X browser with JS turned off. And yes, I have checked this through both wired and wireless connections, including turning wireless off on both the machine and the print server and connecting directly (no switch or hub).
    I'd say there is a problem with the code on the print server. It's not handling HTTP requests or mime types correctly. Downgrading the print server to an earlier firmware allows access to all the content but does not support the scanning function of my particular MFP.
    However... Everything functions just fine with 10.4.10, 10.4.11, booted directly into Win XP on the MBP, running Win XP under Parallels with shared or bridged ethernet, and running Win XP under VMware Fusion using shared networking. Using NAT with Win XP and Fusion results in the same behavior as with 10.5.*. Also, I checked all this out using multiple browsers.
    What I have dug into: None of my OS X machines has a sysctl.conf file. It appears to me that the sysctl settings are located in /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/netinet/tcp.h and other related framework headers in the /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/* directories. I compared the 10.4.11 version of tcp.h file to the version in 10.5.1 and found a few differences. In the 10.5.1 version it has this additional definition:
    #define TCPOLEN_SACK 8 /* len of sack block */
    and this whole section is new:
    /* Option definitions */
    #define TCPOPTSACK_PERMITHDR \
    (TCPOPTNOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK_PERMITTED<<8|TCPOLEN_SACKPERMITTED)
    #define TCPOPTSACKHDR (TCPOPTNOP<<24|TCPOPT_NOP<<16|TCPOPTSACK<<8)
    /* Miscellaneous constants */
    #define MAXSACKBLKS 6 /* Max # SACK blocks stored at sender side */
    #define TCPMAXSACK 3 /* MAX # SACKs sent in any segment */
    In conclusion it seems, with my problem anyway, either 10.4.* and Win XP are allowing kludgy network requests (or something) to work and, at the kernel level, 10.5 is not. Or perhaps 10.5 has an inherent issue with it's networking implementation.
    Help, anyone?

    With timestamp, note 30 sec hang at end:
    listening on en0, link-type EN10MB (Ethernet), capture size 96 bytes
    23:47:26.046921 IP 192.168.1.18.54897 > 192.168.1.251.80: P 2129374503:2129375106(603) ack 1740453961 win 65535
    23:47:26.058972 IP 192.168.1.251.80 > 192.168.1.18.54897: P 1:1124(1123) ack 603 win 4096
    23:47:26.059081 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 1124 win 65535
    23:47:26.062056 IP 192.168.1.251.80 > 192.168.1.18.54897: P 1124:2155(1031) ack 603 win 4096
    23:47:26.062143 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 2155 win 65535
    23:47:26.064619 IP 192.168.1.251.80 > 192.168.1.18.54897: P 2155:3186(1031) ack 603 win 4096
    23:47:26.064736 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 3186 win 65535
    23:47:26.067083 IP 192.168.1.251.80 > 192.168.1.18.54897: P 3186:4217(1031) ack 603 win 4096
    23:47:26.067163 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 4217 win 65535
    23:47:26.069577 IP 192.168.1.251.80 > 192.168.1.18.54897: P 4217:5248(1031) ack 603 win 4096
    23:47:26.069639 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 5248 win 65535
    23:47:26.071996 IP 192.168.1.251.80 > 192.168.1.18.54897: P 5248:6279(1031) ack 603 win 4096
    23:47:26.072054 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 6279 win 65535
    23:47:26.074544 IP 192.168.1.251.80 > 192.168.1.18.54897: P 6279:7301(1022) ack 603 win 4096
    23:47:26.074548 IP 192.168.1.251.80 > 192.168.1.18.54897: P 7301:7306(5) ack 603 win 4096
    23:47:26.074603 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 7301 win 65535
    23:47:26.074622 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 7306 win 65535
    23:47:26.074635 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 7306 win 65535
    23:47:26.077509 IP 192.168.1.18.54897 > 192.168.1.251.80: P 603:1170(567) ack 7306 win 65535
    23:47:26.088382 IP 192.168.1.251.80 > 192.168.1.18.54897: P 7306:7394(88) ack 1170 win 4096
    23:47:26.088487 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 7394 win 65535
    23:47:26.090683 IP 192.168.1.251.80 > 192.168.1.18.54897: P 7394:8854(1460) ack 1170 win 4096
    23:47:26.090788 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 8854 win 65535
    23:47:26.091803 IP 192.168.1.251.80 > 192.168.1.18.54897: P 8854:10314(1460) ack 1170 win 4096
    23:47:26.091869 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 10314 win 65535
    23:47:26.092361 IP 192.168.1.251.80 > 192.168.1.18.54897: P 10314:11774(1460) ack 1170 win 4096
    23:47:26.092431 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 11774 win 65535
    23:47:26.096818 IP 192.168.1.251.80 > 192.168.1.18.54897: P 11774:13234(1460) ack 1170 win 4096
    23:47:26.096929 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 13234 win 65535
    23:47:26.097095 IP 192.168.1.251.80 > 192.168.1.18.54897: P 13234:14694(1460) ack 1170 win 4096
    23:47:26.097154 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 14694 win 65535
    23:47:26.097417 IP 192.168.1.251.80 > 192.168.1.18.54897: P 14694:16154(1460) ack 1170 win 4096
    23:47:26.097421 IP 192.168.1.251.80 > 192.168.1.18.54897: P 16154:16310(156) ack 1170 win 4096
    23:47:26.097483 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 16154 win 65535
    23:47:26.097507 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 16310 win 65535
    23:47:26.106001 IP 192.168.1.18.54897 > 192.168.1.251.80: P 1170:1694(524) ack 16310 win 65535
    23:47:26.118423 IP 192.168.1.251.80 > 192.168.1.18.54897: P 16310:17433(1123) ack 1694 win 4096
    23:47:26.118509 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 17433 win 65535
    23:47:26.121018 IP 192.168.1.251.80 > 192.168.1.18.54897: P 17433:18464(1031) ack 1694 win 4096
    23:47:26.121067 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 18464 win 65535
    23:47:26.123554 IP 192.168.1.251.80 > 192.168.1.18.54897: P 18464:19495(1031) ack 1694 win 4096
    23:47:26.123642 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 19495 win 65535
    23:47:26.125983 IP 192.168.1.251.80 > 192.168.1.18.54897: P 19495:20526(1031) ack 1694 win 4096
    23:47:26.126067 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 20526 win 65535
    23:47:26.128533 IP 192.168.1.251.80 > 192.168.1.18.54897: P 20526:21557(1031) ack 1694 win 4096
    23:47:26.128636 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 21557 win 65535
    23:47:26.130937 IP 192.168.1.251.80 > 192.168.1.18.54897: P 21557:22588(1031) ack 1694 win 4096
    23:47:26.131010 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 22588 win 65535
    23:47:26.133511 IP 192.168.1.251.80 > 192.168.1.18.54897: P 22588:23619(1031) ack 1694 win 4096
    23:47:26.133609 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 23619 win 65535
    23:47:26.138394 IP 192.168.1.251.80 > 192.168.1.18.54897: P 23619:24650(1031) ack 1694 win 4096
    23:47:26.138460 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 24650 win 65535
    23:47:26.143261 IP 192.168.1.251.80 > 192.168.1.18.54897: P 24650:25681(1031) ack 1694 win 4096
    23:47:26.143352 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 25681 win 65535
    23:47:26.148110 IP 192.168.1.251.80 > 192.168.1.18.54897: P 25681:26712(1031) ack 1694 win 4096
    23:47:26.148163 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 26712 win 65535
    23:47:26.153093 IP 192.168.1.251.80 > 192.168.1.18.54897: P 26712:27743(1031) ack 1694 win 4096
    23:47:26.153173 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 27743 win 65535
    23:47:26.157982 IP 192.168.1.251.80 > 192.168.1.18.54897: P 27743:28774(1031) ack 1694 win 4096
    23:47:26.158085 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 28774 win 65535
    23:47:26.162831 IP 192.168.1.251.80 > 192.168.1.18.54897: P 28774:29805(1031) ack 1694 win 4096
    23:47:26.162914 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 29805 win 65535
    23:47:26.167677 IP 192.168.1.251.80 > 192.168.1.18.54897: P 29805:30836(1031) ack 1694 win 4096
    23:47:26.167753 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 30836 win 65535
    23:47:26.170219 IP 192.168.1.251.80 > 192.168.1.18.54897: P 30836:31867(1031) ack 1694 win 4096
    23:47:26.170291 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 31867 win 65535
    23:47:26.172962 IP 192.168.1.251.80 > 192.168.1.18.54897: P 31867:32898(1031) ack 1694 win 4096
    23:47:26.173047 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 32898 win 65535
    23:47:26.175535 IP 192.168.1.251.80 > 192.168.1.18.54897: P 32898:33929(1031) ack 1694 win 4096
    23:47:26.175617 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 33929 win 65535
    23:47:26.175730 IP 192.168.1.251.80 > 192.168.1.18.54897: P 33929:34960(1031) ack 1694 win 4096
    23:47:26.175776 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 34960 win 65535
    23:47:26.180496 IP 192.168.1.251.80 > 192.168.1.18.54897: P 34960:35991(1031) ack 1694 win 4096
    23:47:26.180573 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 35991 win 65535
    23:47:26.183081 IP 192.168.1.251.80 > 192.168.1.18.54897: P 35991:37022(1031) ack 1694 win 4096
    23:47:26.183151 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 37022 win 65535
    23:47:26.185620 IP 192.168.1.251.80 > 192.168.1.18.54897: P 37022:38053(1031) ack 1694 win 4096
    23:47:26.185708 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 38053 win 65535
    23:47:26.188138 IP 192.168.1.251.80 > 192.168.1.18.54897: P 38053:39084(1031) ack 1694 win 4096
    23:47:26.188222 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 39084 win 65535
    23:47:26.190990 IP 192.168.1.251.80 > 192.168.1.18.54897: P 39084:40115(1031) ack 1694 win 4096
    23:47:26.191065 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 40115 win 65535
    23:47:26.193233 IP 192.168.1.251.80 > 192.168.1.18.54897: P 40115:41146(1031) ack 1694 win 4096
    23:47:26.193310 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 41146 win 65535
    23:47:26.196752 IP 192.168.1.251.80 > 192.168.1.18.54897: P 41146:42177(1031) ack 1694 win 4096
    23:47:26.196801 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 42177 win 65535
    23:47:26.198263 IP 192.168.1.251.80 > 192.168.1.18.54897: P 42177:43208(1031) ack 1694 win 4096
    23:47:26.198312 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 43208 win 65535
    23:47:26.200824 IP 192.168.1.251.80 > 192.168.1.18.54897: P 43208:44239(1031) ack 1694 win 4096
    23:47:26.200902 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 44239 win 65535
    23:47:26.203360 IP 192.168.1.251.80 > 192.168.1.18.54897: P 44239:45270(1031) ack 1694 win 4096
    23:47:26.203452 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 45270 win 65535
    23:47:26.205935 IP 192.168.1.251.80 > 192.168.1.18.54897: P 45270:46301(1031) ack 1694 win 4096
    23:47:26.206021 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 46301 win 65535
    23:47:26.208477 IP 192.168.1.251.80 > 192.168.1.18.54897: P 46301:47332(1031) ack 1694 win 4096
    23:47:26.208556 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 47332 win 65535
    23:47:26.211004 IP 192.168.1.251.80 > 192.168.1.18.54897: P 47332:48363(1031) ack 1694 win 4096
    23:47:26.211079 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 48363 win 65535
    23:47:26.213576 IP 192.168.1.251.80 > 192.168.1.18.54897: P 48363:49394(1031) ack 1694 win 4096
    23:47:26.213672 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 49394 win 65535
    23:47:26.216111 IP 192.168.1.251.80 > 192.168.1.18.54897: P 49394:50425(1031) ack 1694 win 4096
    23:47:26.216195 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 50425 win 65535
    23:47:26.218631 IP 192.168.1.251.80 > 192.168.1.18.54897: P 50425:51456(1031) ack 1694 win 4096
    23:47:26.218702 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 51456 win 65535
    23:47:26.221490 IP 192.168.1.251.80 > 192.168.1.18.54897: P 51456:52487(1031) ack 1694 win 4096
    23:47:26.221564 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 52487 win 65535
    23:47:26.223780 IP 192.168.1.251.80 > 192.168.1.18.54897: P 52487:53518(1031) ack 1694 win 4096
    23:47:26.223898 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 53518 win 65535
    23:47:26.226349 IP 192.168.1.251.80 > 192.168.1.18.54897: P 53518:54549(1031) ack 1694 win 4096
    23:47:26.226425 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 54549 win 65535
    23:47:26.228909 IP 192.168.1.251.80 > 192.168.1.18.54897: P 54549:55580(1031) ack 1694 win 4096
    23:47:26.228989 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 55580 win 65535
    23:47:26.231410 IP 192.168.1.251.80 > 192.168.1.18.54897: P 55580:56611(1031) ack 1694 win 4096
    23:47:26.231486 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 56611 win 65535
    23:47:26.233995 IP 192.168.1.251.80 > 192.168.1.18.54897: P 56611:57642(1031) ack 1694 win 4096
    23:47:26.234063 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 57642 win 65535
    23:47:26.236518 IP 192.168.1.251.80 > 192.168.1.18.54897: P 57642:58673(1031) ack 1694 win 4096
    23:47:26.236590 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 58673 win 65535
    23:47:26.239077 IP 192.168.1.251.80 > 192.168.1.18.54897: P 58673:59704(1031) ack 1694 win 4096
    23:47:26.239152 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 59704 win 65535
    23:47:26.241585 IP 192.168.1.251.80 > 192.168.1.18.54897: P 59704:60735(1031) ack 1694 win 4096
    23:47:26.241656 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 60735 win 65535
    23:47:26.244193 IP 192.168.1.251.80 > 192.168.1.18.54897: P 60735:61766(1031) ack 1694 win 4096
    23:47:26.244310 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 61766 win 65535
    23:47:26.246668 IP 192.168.1.251.80 > 192.168.1.18.54897: P 61766:62797(1031) ack 1694 win 4096
    23:47:26.246739 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 62797 win 65535
    23:47:26.249274 IP 192.168.1.251.80 > 192.168.1.18.54897: P 62797:63828(1031) ack 1694 win 4096
    23:47:26.249356 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 63828 win 65535
    23:47:26.251754 IP 192.168.1.251.80 > 192.168.1.18.54897: P 63828:64859(1031) ack 1694 win 4096
    23:47:26.251824 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 64859 win 65535
    23:47:26.254396 IP 192.168.1.251.80 > 192.168.1.18.54897: P 64859:65890(1031) ack 1694 win 4096
    23:47:26.254492 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 65890 win 65535
    23:47:26.256839 IP 192.168.1.251.80 > 192.168.1.18.54897: P 65890:66921(1031) ack 1694 win 4096
    23:47:26.256908 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 66921 win 65535
    23:47:26.259845 IP 192.168.1.251.80 > 192.168.1.18.54897: P 66921:67952(1031) ack 1694 win 4096
    23:47:26.259918 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 67952 win 65535
    23:47:26.261924 IP 192.168.1.251.80 > 192.168.1.18.54897: P 67952:68983(1031) ack 1694 win 4096
    23:47:26.261992 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 68983 win 65535
    23:47:26.264528 IP 192.168.1.251.80 > 192.168.1.18.54897: P 68983:70014(1031) ack 1694 win 4096
    23:47:26.264599 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 70014 win 65535
    23:47:26.267018 IP 192.168.1.251.80 > 192.168.1.18.54897: P 70014:71045(1031) ack 1694 win 4096
    23:47:26.267093 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 71045 win 65535
    23:47:26.269750 IP 192.168.1.251.80 > 192.168.1.18.54897: P 71045:72076(1031) ack 1694 win 4096
    23:47:26.269827 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 72076 win 65535
    23:47:26.272286 IP 192.168.1.251.80 > 192.168.1.18.54897: P 72076:73107(1031) ack 1694 win 4096
    23:47:26.272361 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 73107 win 65535
    23:47:26.272561 IP 192.168.1.251.80 > 192.168.1.18.54897: P 73107:74138(1031) ack 1694 win 4096
    23:47:26.272608 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 74138 win 65535
    23:47:26.277299 IP 192.168.1.251.80 > 192.168.1.18.54897: P 74138:75169(1031) ack 1694 win 4096
    23:47:26.277372 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 75169 win 65535
    23:47:26.279818 IP 192.168.1.251.80 > 192.168.1.18.54897: P 75169:76200(1031) ack 1694 win 4096
    23:47:26.279927 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 76200 win 65535
    23:47:26.282341 IP 192.168.1.251.80 > 192.168.1.18.54897: P 76200:77231(1031) ack 1694 win 4096
    23:47:26.282420 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 77231 win 65535
    23:47:26.284937 IP 192.168.1.251.80 > 192.168.1.18.54897: P 77231:78262(1031) ack 1694 win 4096
    23:47:26.285015 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 78262 win 65535
    23:47:26.285389 IP 192.168.1.251.80 > 192.168.1.18.54897: P 78262:79293(1031) ack 1694 win 4096
    23:47:26.285459 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 79293 win 65535
    23:47:26.285992 IP 192.168.1.251.80 > 192.168.1.18.54897: P 79293:80324(1031) ack 1694 win 4096
    23:47:26.286071 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 80324 win 65535
    23:47:26.286096 IP 192.168.1.251.80 > 192.168.1.18.54897: P 80324:81355(1031) ack 1694 win 4096
    23:47:26.286147 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 81355 win 65535
    23:47:26.286692 IP 192.168.1.251.80 > 192.168.1.18.54897: P 81355:82386(1031) ack 1694 win 4096
    23:47:26.286763 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 82386 win 65535
    23:47:26.287499 IP 192.168.1.251.80 > 192.168.1.18.54897: P 82386:83417(1031) ack 1694 win 4096
    23:47:26.287569 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 83417 win 65535
    23:47:26.288204 IP 192.168.1.251.80 > 192.168.1.18.54897: P 83417:84448(1031) ack 1694 win 4096
    23:47:26.288283 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 84448 win 65535
    23:47:26.288318 IP 192.168.1.251.80 > 192.168.1.18.54897: P 84448:85479(1031) ack 1694 win 4096
    23:47:26.288348 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 85479 win 65535
    23:47:26.288357 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 85479 win 65535
    23:47:26.288761 IP 192.168.1.251.80 > 192.168.1.18.54897: P 85479:85540(61) ack 1694 win 4096
    23:47:26.288831 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 85540 win 65535
    23:47:56.284583 IP 192.168.1.251.80 > 192.168.1.18.54897: P 85539:85540(1) ack 1694 win 4096
    23:47:56.284679 IP 192.168.1.18.54897 > 192.168.1.251.80: . ack 85540 win 65535
    ^C
    175 packets captured
    212 packets received by filter
    0 packets dropped by kernel

  • This is just plain wrong...

    I entered 5:00 PM and that's what it put in the cell.
    Then I entered 3:50:25 PM and that's what it put in the cell.
    Then I put B2 - C2 in the next cell and I got "0.0483217592592593".
    Not the right thing. And yes, I checked the format to make sure it said "Time", etc...
    I love Numbers, but dear Apple, please fix this...

    I also cannot see a function to convert a real number into a date/time, perhaps with an optional parm to specify a date/time offset.
    Here's a rough idea of the path you need to go down:
    =INT((B2-C2)24)&":"&RIGHT("00"&INT((((B2-C2)*24)-INT((B2-C2)*24))*60),2)&":"&RIGHT("00"&INT( (((B2-C2)*24*60)-INT((B2-C2)*24*60))60),2)
    which gives you a leading "0" if the minutes/seconds are less than 10. You need to extend this out for seconds.
    But....
    It all depends on what you are doing.
    Back in my Excel and Appleworks days I found that for reliable data entry it is best to have the minutes and hours specified in SEPARATE cells. I make them nice and narrow with the hours right justified and the minutes left justified.
    Usually this is a start and finish time for employees so I can't take any chances on accuracy when calculating wages.
    As far as I know doing time sheet style calculations has always required your own formulas. But once you have one then just copy it into the other fields.
    I save my favourite formulas in a file by the way.

  • From where can I download the javamail api javadocs?

    I spend time at a place with slow and unreliable internet access, and prefer to install the javamail API javadocs on my PC, rather than accessing it via the internet every time.  Is it available for download, please.

    We no longer make the javadocs available for download, but...
    You can download the source code and generate the javadocs yourself.
    The javadocs are available form the maven repository.  This works well if you need them for code completion in an IDE, but not so well if you just want to browse them.

  • 8.1 security API Javadocs (downloadable)??????

    I am trying to find a downloadable version of the BEA Server 8.1 security API Javadocs.
    I am not always able to be online do I would like to get a downloaded version
    for my laptop. Does anyone know where I can find one.
    Thanks - Peter

    On 16 Feb 2004 05:08:40 -0800, Peter Len <[email protected]> wrote:
    >
    I am trying to find a downloadable version of the BEA Server 8.1
    security API Javadocs.
    I am not always able to be online do I would like to get a downloaded
    version
    for my laptop. Does anyone know where I can find one.
    Thanks - PeterPeter,
    I don't think it is possible to download just the security docs. All the
    javadoc can be dowloaded from http://edocs/wls/docs81/pdf.html.
    PaulF
    Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/

  • JAVA API (javaDoc) Functionality

    Hello all
    I have come across the following idea after wasting some considerable time browsing the Java API (JavaDoc).
    The API is a great tool in assisting programmers who are not so experienced and do not know the API so well. It also helps experienced programmers in browsing foreign packages.
    However, something that is missing in the API is a function which allows you direct access to methods which return a specific object.
    Example: I need an object X, and it is not possible to initialise or directly access this object (Iterator which is infact an Interface). How do I access methods in other classes that return object X ( Iterator I = (Hashmap.keySet()).iterator(); Therefore, the method iterator() from Interface Set, and subsequently the method keySet() from class Hashmap).
    I am sure that such a functionality built in future javaDocs will help a lot of programmers browsing through the API.
    Finally, I hope this is the right forum for such requests.
    Faz

    Do you mean you want to access a method on an object but the type of the object isn't known until runtime? If this is what you mean than you might want to take a look at the Reflection API:
    http://java.sun.com/docs/books/tutorial/reflect/index.html

  • ADF API JavaDoc JDeveloper

    Hi,
    does anyone know, how to include/activate the ADF-API JavaDoc in JDeveloper ? So I cann see the JavaDoc during coding...
    Or do you need the ADF source code from Oracle for using Javadoc in JDeveloper ? (I ask because JavaDoc API is available on the oracle web sites..., so I think it should be possible to include those URLs in JDeveloper same way as using Javadoc from SUNs APIs (JDK) in Elcipse... ??)
    Thanks in advance

    Hi,
    Or do you need the ADF source code from Oracle for using Javadoc in JDeveloper ?
    The quick JavaDocs require the source to be available. When you click on the "Go to Javadoc" link then the same JavaDoc you see on the Oracle website is opened in JDeveloper (its part of the help)
    Frank

  • My sparx is now just plain ipod..;c

    I think i just ruined my ipod. ;c i accidentally restored it last night and after that the name "sparx" was replaced to just plain "ipod" im just wondering if i can still change it.
    and one more thing.. whenever i connect it to itunes, the "update your ipod" command in the file menu doesnt work. how can i fix this? i tried installing and reinstalling my itunes.but it still doesnt work. im afraid i ruined my ipod for good.. and oh by the way.. the computer that i used was not the original library for my ipod. but the first time i plugged in my ipod it worked but aftr restoring it, the problem regardng the update thingy started.
    pls help me.. my mom will be really disappointed if i cnt fix it..

    "im afraid i ruined my ipod for good"
    I hardly think so!
    First change the name. Look here.
    How to rename your iPod.
    When you restored it you put it back to factory settings, that's why the name changed to just "iPod".
    If you mean the "update" option is greyed out and not selectable, then this could mean you have the iPod set to manual transfer.
    Look in edit/preferences/iPod to check.
    Incidentally, I'm curious as to how you "accidentally" restored your iPod?!

  • Hi i have a apple ipod touch 3G the power button doesnt work so i cant ever turn it off but i got home and my screen is just plain white how do i fix this thnx

    i need some help i have a 3G ipod touch the power button doesnt work at all but i got home and my screen is just plain white how do i fix this

    Let the battery fully drain. After charging for an hour try a reset (may not work).
    Reset iPod touch: Hold down the On/Off button and the Home button at the same time for at
    least ten seconds, until the Apple logo appears.
    - Then connect to your comnputer and try to restore.
    - If the screen is still white then it appears yu have a hardware problem and appointment at the Genius Bar of an Apple store is in order.

  • I downloaded a movie and when i was watching it it stopped and the screen went dark and can't go back to the main screen it just plain dark screen

    I rented a movie from iTunes and right at the end it stopped playing then after few seconds the screen went dark
    And I can not go back to main screen or do any thing it just plain dark as if the movie is stuck on stop mode ?!!

    See if my reply to your thread works : https://discussions.apple.com/message/15975768#15975768

  • Notification on HP EPrint: Oops! Something just went wrong on our server!

    We've got a problem on the site www.hpeprint.com.
    After log in, directly the message:
    Oops! Something just went wrong on our server! We've logged the problem and will fix it as soon as possible. Sorry for the inconvenience
    The eprint settings dont work so we can't change the settings of the printer for eprint.
    it should print out of sheet input 2 instead of 1, Where is paper with letterhead in.
    but i cant change the settings becouse the error message.
    how can i change the settings?
    sorry for the bad english, i'm dutch...

    Hi AJS77,
    I understand that you're where having issues with the website.  The website should be working fine at this time.  Let me know if you're still having issues logging into the site.

  • Oops! Something just went wrong on our server!

    Oops! Something just went wrong on our server! We've logged the problem and will fix it as soon as possible. Sorry for the inconvenience.
    The above message always comes up and I can't email the printer or get  apps. Any suggestions will be greatly appreciated. Thanks!

    Hello
    Which browser your using? Try with Firefox if you are using IE.
    Say "Thanks" by clicking the Kudos Star in the post that helped you.
    Please mark the post that solves your problem as "Accepted Solution"

  • M475dw can't install Google docs estorage - Oops! Something just went wrong on our server!

    When I try to install the google docs estorage appp I get this error
    Oops! Something just went wrong on our server! We've logged the problem and will fix it as soon as possible. Sorry for the inconvenience.
    I have installed other apps. They work fine.

    Are you talking about an app that is available on the printer or are you referencing an app that you download on your computer?
    If the latter, please tell me which version of Windows that you are using. If the former, please verify with me that you are using the same printer that was listed in the original post. 
    -------------How do I give Kudos? | How do I mark a post as Solved? --------------------------------------------------------

  • Why i always get the message "Oops! Something just went wrong on our server! We've logged the prbl"

    why i always get the message "Oops! Something just went wrong on our server! We've logged the problem and will fix it as soon as possible. Sorry for the inconvenience." everytime i added new apps on eprintcenter.

    I will need a little more information in order to help out. What model of printer is it that you own? Are you able to ePrint with the machine when you send emails to it? Have you every been able to successfully download apps to the machine without getting the error message? Do the apps that you download successfully download at any time after that error and later work?
    I am a former employee of HP...
    How do I give Kudos?| How do I mark a post as Solved?

  • I always get the message "Oops! Something just went wrong on our server! We've logged the prbl"

    I have a LaserJet CM1415fnw and I have never been able to install additional apps.  I can delete apps off the printer and I can also eprint.  I continullay get this message when I click on the apps link on hpeprintcenter.com:  Oops! Something just went wrong on our server! We've logged the problem and will fix it as soon as possible. Sorry for the inconvenience.

    Hi,
    I've the same issue.
    I can only logon as the register proces ends. Any following (later) attemts to login end with the error message.
    Tried twice - making two new account - same pattern, gets in first time only.
    The printer works - print sent are printed. And do I enter a wrong e.g. password on hpeprintcenter.com I'm promted about the wrong password. But entering the right user and password the above error message appers.
    Regards,
    Michael

Maybe you are looking for

  • How do I remove Safari 5 and go back to 4?

    I just downloaded Safari 5 and now I want to go back to 4. How do I remove 5 and where can i download 4 again? Thanks

  • Reporting Services UserToken SID's error

    Hi All I know there is loads on the web about this but none of it is fixing the issue. We have SCCM 2012 R2 (Not been upgraded from 2012) and SQL Server 2008 R2. All was working fine till a couple of days again when some uses started getting the User

  • SQL Developer 1.51.5440 high CPU + frozen screen

    Hi, Using SQL Developer 1.51.5440 on WinXP. The laptop has 2 GB and decent CPU, the OS is well maintained and in good working order. From times to times, the SQL Developer window becomes unresponsive (with a gray background). Either it freezes in thi

  • OS X 10.5.6 compatible USB headset

    hey i need a good quality USB microphone for $50. the quality doesn't have to be absolutley amazing. just one that cuts out background noise and doesn't pick up me breathing.

  • Overclocking MSI 6600GT AGP VTD128

    I am really confused on the memory clock and core clock on my video card.  I thought that my memory clock was supposed to be 1000Mhz, but it really shows 900Mhz Also, the 2D Clock is at 300 and i don't know if that is correct or not Can someone tell