/** * Runs a sample test procedure * * @param robot the robot attached to the screen device */ public static void runTest(Robot robot) { // simulate a space bar press robot.keyPress(' '); robot.keyRelease(' '); // simulate a tab key followed by a space robot.delay(2000); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyPress(' '); robot.keyRelease(' '); // simulate a mouse click over the rightmost button robot.delay(2000); robot.mouseMove(200, 50); robot.mousePress(InputEvent.BUTTON1_MASK); robot.mouseRelease(InputEvent.BUTTON1_MASK); // capture the screen and show the resulting image robot.delay(2000); BufferedImage image = robot.createScreenCapture(new Rectangle(0, 0, 400, 300)); ImageFrame frame = new ImageFrame(image); frame.setVisible(true); }
/** remakes all the connections between dots. */ public static void remakeConnections() { int popPathState = im.paths; // Pop it like a stack boolean popDotState = im.showDots; im.paths = ImageFrame.NO_PATHS; im.showDots = false; for (int i = 0; i < trackers.length - 1; i++) { trackers[i].assignAllBecomes(trackers[i + 1]); } im.paths = popPathState; im.showDots = popDotState; }
/** remakes all the dots. Perhaps their was an algorithm change. */ public static void remakeDots() { int popPathState = im.paths; // Pop it like a stack (SPOILERS: IT IS) boolean popDotState = im.showDots; im.paths = ImageFrame.NO_PATHS; im.showDots = false; for (DotTracker tracker : trackers) { tracker.assignDots(); } remakeConnections(); im.paths = popPathState; im.showDots = popDotState; }
public static void main(String[] args) throws IOException { settupArgs(args); settupImages(); im.showDots = true; im.paths = ImageFrame.SHOWN_PATHS; settupInput(); save(); System.out.println("done"); }
@Override public void run() { while (!client1Queue.isEmpty() || !client2Queue.isEmpty()) { ImageFrame client1Image = client1Queue.poll(); ImageFrame client2Image = client2Queue.poll(); System.out.println( "client1Image=" + client1Image.getNumber() + " ; client2Image=" + client2Image.getNumber()); displayImage(client1ImageView, client1Image); displayImage(client2ImageView, client2Image); try { System.out.println("sleeping ... "); Thread.sleep(timeout * 1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
public void render(File file) { w = new World<RGBColor>(); builder = new WorldBuilder<RGBColor>(w); builder.build(file); w.initialize(); vp = w.getViewPlane(); imf = new ImageFrame(vp.resolution, false, null); if (w.isDynamic()) { // w.render(imf); // imf.repaint(); // imf.finish(); w.set(); while (w.hasNext()) { w.render(imf); imf.repaint(); w.step(); SwingUtilities.invokeLater( new Runnable() { @Override public void run() {} }); } imf.finish(); } else { w.render(imf); String fileName2 = GuiUtilities.getOutputPngFileName(file.getName()); PngFilm png = new PngFilm(fileName2, imf.getFilm()); png.finish(); imf.repaint(); imf.finish(); } }
private void displayImage(ImageView imageView, ImageFrame imageFrame) { byte[] bytes = imageFrame.getBytes(); ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(bytes); Image image = new Image(byteArrayStream); imageView.setImage(image); }
/** initializes all the UI elements */ public static void settupInput() { final JPopupMenu rightClick = new JPopupMenu(); final JMenu paths = new JMenu("Paths"); rightClick.add(paths); ButtonGroup pathGroup = new ButtonGroup(); final JRadioButtonMenuItem allPaths = new JRadioButtonMenuItem("Show all"); paths.add(allPaths); pathGroup.add(allPaths); final JRadioButtonMenuItem currentPaths = new JRadioButtonMenuItem("Show visible"); paths.add(currentPaths); pathGroup.add(currentPaths); final JRadioButtonMenuItem somePaths = new JRadioButtonMenuItem("Show range"); paths.add(somePaths); pathGroup.add(somePaths); final JRadioButtonMenuItem noPaths = new JRadioButtonMenuItem("Show none"); paths.add(noPaths); pathGroup.add(noPaths); final JCheckBoxMenuItem showDots = new JCheckBoxMenuItem("Show dots"); paths.add(showDots); showDots.setSelected(true); currentPaths.setSelected(true); final JMenu image = new JMenu("Image"); rightClick.add(paths); rightClick.add(image); ButtonGroup imageGroup = new ButtonGroup(); final JRadioButtonMenuItem refined = new JRadioButtonMenuItem("Refined"); image.add(refined); imageGroup.add(refined); final JRadioButtonMenuItem blank = new JRadioButtonMenuItem("Blank"); image.add(blank); imageGroup.add(blank); refined.setSelected(true); im.addMouseListener( new MouseAdapter() { public void mouseClicked(final MouseEvent e) { if (e.getButton() == 3) { rightClick.show(im, e.getX(), e.getY()); } else if (e.getButton() == 1) { for (DotTracker t : trackers) { t.highlighted = null; } ArrayList<Dot> generation = new ArrayList<Dot>(); generation.add( trackers[im.frame].closestDot(e.getX() / im.scaleX(), e.getY() / im.scaleY())); int i = im.frame; while (!generation.isEmpty()) { trackers[i].highlighted = generation; ArrayList<Dot> newGen = new ArrayList<Dot>(); for (Dot d : generation) { for (Dot childDot : d.getChildren()) { if (!newGen.contains(childDot)) { newGen.add(childDot); } } } generation = newGen; i++; } } } }); im.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_LEFT) { if (im.frame > 0) { im.frame--; im.repaint(); } } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { if (im.frame < im.frames - 1) { im.frame++; im.repaint(); } } } }); JFrame controls = new JFrame("Controls"); controls.getContentPane().setLayout(new GridLayout(0, 2)); JLabel intenLabel = new JLabel("Minimum dot intensity (0 for is black, 1 is white)"); controls.add(intenLabel); final JTextField intensity = new JTextField(DotTracker.DOT_PEAK_INTENSITY_CUTOFF + ""); controls.add(intensity); JLabel distLabel = new JLabel("Maximum travel distance (pixels)"); controls.add(distLabel); final JTextField distance = new JTextField(DotTracker.DOT_DISTANCE_CUTOFF + ""); controls.add(distance); controls.add(new JLabel(" ")); controls.add(new JLabel(" ")); JLabel rStartLabel = new JLabel("Range Start"); controls.add(rStartLabel); final JTextField rStart = new JTextField(im.rangeStart + ""); controls.add(rStart); rStart.setEnabled(false); JLabel rEndLabel = new JLabel("Range End"); controls.add(rEndLabel); final JTextField rEnd = new JTextField(im.rangeEnd + ""); controls.add(rEnd); rEnd.setEnabled(false); controls.pack(); controls.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); controls.setVisible(true); ActionListener l = new ActionListener() { public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == allPaths) { im.paths = ImageFrame.ALL_PATHS; } else if (source == currentPaths) { im.paths = ImageFrame.SHOWN_PATHS; } else if (source == somePaths) { im.paths = ImageFrame.BETWEEN; } else if (source == noPaths) { im.paths = ImageFrame.NO_PATHS; } else if (source == showDots) { im.showDots = showDots.isSelected(); } else if (source == refined) { im.image = ImageFrame.REFINED; } else if (source == blank) { im.image = ImageFrame.BLANK; } rStart.setEnabled(somePaths.isSelected()); rEnd.setEnabled(somePaths.isSelected()); } }; allPaths.addActionListener(l); currentPaths.addActionListener(l); noPaths.addActionListener(l); somePaths.addActionListener(l); showDots.addActionListener(l); refined.addActionListener(l); blank.addActionListener(l); final ActionListener controlListener = new ActionListener() { public void actionPerformed(ActionEvent e) { try { Object source = e.getSource(); if (source == intensity) { double newIntensity = Double.parseDouble(intensity.getText()); if (newIntensity != DotTracker.DOT_PEAK_INTENSITY_CUTOFF) { DotTracker.DOT_PEAK_INTENSITY_CUTOFF = newIntensity; remakeDots(); } } else if (source == distance) { double newDist = Double.parseDouble(distance.getText()); if (newDist != DotTracker.DOT_DISTANCE_CUTOFF) { DotTracker.DOT_DISTANCE_CUTOFF = newDist; remakeConnections(); } } else if (source == rStart) { im.rangeStart = Integer.parseInt(rStart.getText()); } else if (source == rEnd) { im.rangeEnd = Integer.parseInt(rEnd.getText()); } } catch (Exception er) { } } }; FocusListener prentendJavascript = new FocusListener() // in javascript, a field losing focus is an action. I make it so here, // so that changing the controls will have effect immediately { public void focusGained(FocusEvent e) {} public void focusLost(FocusEvent e) { Object source = e.getSource(); controlListener.actionPerformed(new ActionEvent(source, 0, "Focus Lost")); } }; intensity.addActionListener(controlListener); distance.addActionListener(controlListener); rStart.addActionListener(controlListener); rEnd.addActionListener(controlListener); intensity.addFocusListener(prentendJavascript); distance.addFocusListener(prentendJavascript); rStart.addFocusListener(prentendJavascript); rEnd.addFocusListener(prentendJavascript); }