How to save a graphic composition

I have a JPanel where several swing components are added. I'd like to apply some transformations to the resulting composition.So I'd like to save it before applying transformations in order to recover the original composed image every time I want to transform it.
How should this be achieved ?
Could I get an image from the jPanel Graphics context ?
Any hint ?
Thanks in advance. Jose Gonz�lez.

do you mean affine transformations?
AffineTransformation af = aGraphics2D.getTransform()
//do here your transforms
//reset to the original
aGraphics2D.setTransform(af)

Similar Messages

  • How to save a graphic

    Hello All.
    I was able to create a graphic using STAT_GRAPH_REF function module but now I want to control the buttons of the graphics window (I want to save the graphic into my hard drive). How can I do that?
    TIA, Mauro.

    Hi,
    use the chart engine that is part of the IGS. Just have a look at the demo program GRAPHICS_IGS_CE_TEST where the class CL_IGS_CHART_ENGINE is used to create a chart. You can use such a chart for displaying and/or saving it.
    Regards, Kai

  • How to save simple graphics drawn on canvas as gifs, bitmaps, etc.

    I figured out how to draw a graphics object which is abstract for an application rather than an applet. Now, my question is, how do I save these simple graphics (lines, rectangles, circles,etc) drawn on canvas as gifs, bitmaps, etc. so that they may later be opened using other graphical viewers.
    another question I was wondering was if graphics is a AWT only class (ie no better swing equivalent)
    thanks

    some things i have found so far are acme or java advanced imaging api... anyone know what is easier to use for my purpose?
    it appears that when using acme, i need to use java.awt.image (does that mean I would have to convert the canvas to an image?) how do i save in gif format using java advanced imaging?
    Please help

  • How to save a Graphics with .jpg???

    I draw a Picture on cavas ,and then I want to save it to an IMage with .jpg, and print it.
    what can I do?
    help me !!
    Thanks in advance.

    Turn the canvas into an Image or BufferedImage, or whatever, then import this package:
    import com.sun.image.codec.jpeg.*;
    Finally, here is a static util function:
    <pre>
    public void saveJPG(Image img, String prefix, String suffix, File dir )
    String s = null;
    BufferedImage bi = createBufferedImage(img);
    FileOutputStream out = null;
    try
    File file = File.createTempFile(prefix, suffix, dir);
    s = file.getName();
    out = new FileOutputStream(file);
    catch (java.io.FileNotFoundException io)
    { System.out.println("File Not Found"); }
    catch (java.io.IOException e) { System.err.println(e); }
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
    try { encoder.encode(bi); }
    catch (java.io.IOException io) {
    System.out.println("IOException"); }
    try{ out.close(); }
    catch (java.io.IOException io) { System.out.println("IOException"); }
    System.out.println("JPEG Saved: " + s);
    </pre>
    If that doesn't help, try the JAI.

  • How to save a PSD file with a composite image?

    Windows 7 64bit  | Photoshop CS4  |  iMatch DAM
    Somewhere along the line I must have changed a setting, because many of my images now are not viewable in my DAM software (iMatch), or other photo viewers, like Picasa for instance. Instead, a small rectangular black box appears that says "This layered Photoshop file was not saved with a composite image". Can a contributor tell me where the setting is  to save with a composite - Assistance is very much appreciated, IM

    Thank you Chris,for the correct  answer - Best, Bob

  • I want to use Get Panel Image in Labview 5.0.1 and need details on how to save the BMP data generated

    I am trying to generate an application that saves a copy of its front panel on completion. This is easy to do using an invoke node with Print VI to HTML but this does not work in an .exe format. I have seen elsewhere that you have to use the Get Panel Image method, but no details are supplied in LV 5.0.1 documentation of how to use the "image" data (1-D Unsigned Byte array) that is generated. I want to save this in a format that can then be read as a bitmap in any standard graphics package. Any assistance?

    Hi,
    If you'd upgrade to LV5.1 or 6 you could use the 'standard' vi's for this.
    You need a VI called "Write BMP File.vi". It's not shipped with LV5.0.1.
    This vi only uses 3 subVI's, so perhaps someone at NI can convert it and
    send it to you (sorry, I won't, it's copywrited).
    If you cannot get this VI anywhere, you'll need to figure out the BMP file
    format yourself. It's not too complicated, but still could take some days.
    Perhaps someone figured it out before LV5.1 was released.
    Regards,
    Wiebe.
    "RDK" wrote in message
    news:[email protected]..
    > I want to use Get Panel Image in Labview 5.0.1 and need details on how
    > to save the BMP data generated
    >
    > I am trying to generate an application that saves a copy
    of its front
    > panel on completion. This is easy to do using an invoke node with
    > Print VI to HTML but this does not work in an .exe format. I have seen
    > elsewhere that you have to use the Get Panel Image method, but no
    > details are supplied in LV 5.0.1 documentation of how to use the
    > "image" data (1-D Unsigned Byte array) that is generated. I want to
    > save this in a format that can then be read as a bitmap in any
    > standard graphics package. Any assistance?

  • How to save an project in iMovie 10

    I am familiar with iMovies 9 and using OSX 10.6.8.  Unfortunately I have a new MacPro on OS 10.9.2 and iMovie10 (give me back my old MAcbook any day). I have finished making the movie and saved it on the desktop in mp4 format.  All I want to do now  is to find out is how to save the movie I have made so I can possibly get to it again to maybe add/delete things from it. In other words, I simply want to save it -
    how do I do this?
    can I save the movie in m4v format like I did in iMovie 9?
    the mp4 format is 900Mb for 10 min, the 12 minute movie I did in iMovie 9 is 400Mb when both saved as 720p. Why?
    Can you delete iMovie 10 from Mavericks and install iMovie 9
    Many thanks in anticipation from a very frustrated Mac user of 8 years now thinking of going to Windows

    Ok I think I've worked it out (did not know your could share to the theater, the icloud message made me assume theater was just for icloud) but I've another technical question about export quality and pictures in videos.
    I just published four different quality movies (480p, 560p, 720p, 1080p) which only had a few average quality digital pics in them, just to create a short movie to compare.
    I've always assumed that the quality of pictures was handled differently to video in that pictures would be fine quality even with lower quality setting, and the thing that really got hurt by lesser xxxP quality was the moving video not the pictures. But when I resized all four Quicktime movies so they were the same size and put them next to each other I could notice quite a difference in the sharpness between each of them. Since I'd rather have the pictures all used at their best quality will I have to choose the 60GB 1080p export function anyway at some point? It seems like such a waste of space and time when technically there are only about ten frames in the entire clip!
    Surely there's some kind of video encoding language where you can make the file size reflect this? Kinda like what vector graphics did to bitmap formats for image files.
    There must be a way round this ...

  • How can I add graphics to a photograph from iPhoto?

    Good morning, how can I add graphics, ie. arrows to a photograph that's in my iPhoto library? Thank you...

    Set your Graphics App as an external editor in iPhoto
    In order of price here are some suggestions:
    Seashore (free)
    The Gimp (free)
    Graphic Coverter ($45 approx)
    Acorn ($50 approx)
    Pixelmator ($50 approx)
    Photoshop Elements ($75 approx)
    There are many, many other options. Search on MacUpdate. You can set Photoshop (or any image editor) as an external editor in iPhoto. (Preferences -> General -> Edit Photo: Choose from the Drop Down Menu.) This way, when you double click a pic to edit in iPhoto it will open automatically in Photoshop or your Image Editor, and when you save it it's sent back to iPhoto automatically. This is the only way that edits made in another application will be displayed in iPhoto.

  • How to save image in database

    hi ,
    I am developing a application. i want to upload image with person's details and save it to database. How to do this? I hv got tutorials for uploading image but want to know how to save it to database table along with person's details.
    Thanks in advance.
    Regards
    Rajaram

    1.Go to transaction SE78.
    2.Select tree menu: Form Graphics -> Stroed on Document Server -> Graphics General Graphics -> BMAP Bitmap Images
    3.Select <IMPORT> to import bitmap image file to SAP. System will popup screen for input file information and target name.
    4.Select <Tick> After you already input data. System will upload image and return message to tell you success or fail.
    5.You can preview the picture that uploaded by select<print prv>
    If u want to store the images and retrive it from the server corresponding to the person id then just save the image by person id and code it as per the requirement.
    U can save ur images using se78 and also u can c it using TCODE AL11.By navigating thru the exact path u can get the images.

  • How to save image which is inside an applet?

    In my web application, I am displaying some graphs using applet. I wish to let the user save the graphs as images from the browser.
    I would really appreciate if somebody could inform me about this.
    Thanks
    Sachin

    A couple of things...
    1) You will need to sign your applet afterwards, otherwise the user will not be able to save the graphic to their hard drive due to the Java security policy.
    2) I did something similar, a code snippet is below. Mine was a Servlet version though, and sent the buffered stream to a JSP page where it was displayed as a graphic. You can figure out how to modify this so that it goes to a File stream instead... You will
    OutputStream stream;
    BufferedImage bi = new BufferedImage(pieValueObject.getCanvasWidth(),                          pieValueObject.getCanvasHeight(),
    BufferedImage.TYPE_BYTE_INDEXED);
    Graphics2D graphics = (Graphics2D)bi.createGraphics();
    // paint all your stuff on the graphics object created above
    // use a JPEG encoder to actually take what is on the graphics
    // object inside the BufferedImage, and encode it to the stream.
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(stream);
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
    param.setQuality(1.0f, false);
    encoder.setJPEGEncodeParam(param);
    encoder.encode(bi);
    // Your graphic is now in the Output stream.

  • How to save diagramm in HTML format or PDF it

    how to save diagramm in HTML format or PDF it

    You have two alternatives. First of all, there are many utilities, some of them free that can put a "printer" on your printer list that really writes a PDF file. The one I use is free, called CutePDF. Once you have one of these installed, saving to PDF is as simple as print the diagram, choose the printer associated with your utility, then name the file.
    I'm not sure if it is in your version of Designer, but all of the latest versions of Designer have a "publish diagram" utility. Just drop down the Utilities menu from the RON or the Design Editor. The bottom selection should be "Publish Diagrams...", which will open a dialog window. Choose the diagram(s) you want to publish, select Publish to File, enter a file name, and select a graphics format from PNG, GIF, JPEG, BMP or TIFF. You can easily add the file to an HTML page inside an &lt;IMG&gt; tag.

  • (mapviewer) how to save map as an image

    I open a mapviewer in web page, and load a map.
    I wonder how to save this map as an image?
    thx
    tamsun

    Hey, I was wondering how I could save my graphics as an image,Don't know if you can save Graphics as an Image, but you can draw a JComponents image to an Image. Search the forum using "screenimage" to find my class that does this.

  • How  to  save  content of a  whole  swing  page

    Hi everyone ..
    can any of u tell me ,how to save contents of a java swing page in a single file with all components viz . textfield,textarea,JTable,JPanel etc .. with their respective formatting ie.e Font,Color etc ..
    Plz let me know it soon .. its very urgent ..
    Can I save it as Screenshot or Jpeg Image .. or how to go about it .
    Mohit

    Sure: see below!
    WARNING: this code will not compile as is because it uses some other classes from my personal code library (FileUtil & StringUtil). The particular methods of those classes which are used below are trivial methods that anyone can write, which is is why I have not posted them as well. So, to get the code below to compile, you can
    a) write your own versions of these classes or
    b) simply add the necessary methods to this class or
    c) simply comment out their usage (in the case of StringUtil, which is just used for arg checking)
    But if you still want me to post them, then I can post the relevant fragments of those classes.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.swing.*;
    import bb.io.FileUtil;
    import bb.util.StringUtil;
    * Class which supports taking screen shots of the entire desktop, AWT Components, or Swing JComponents.
    * This functionality is implemented in a series of <code>take</code> methods, each of which returns a BufferedImage.
    * This class also offers convenience <code>write</code> methods for storing BufferedImages to files.
    * <p>
    * The images taken by this class should be the precise images seen on the screen.
    * <b>However, the images written to files may deviate from the originals.</b>
    * One obvious cause is limitations of the chosen file format (especially with lossy formats like jpeg).
    * A subtle issue can occur, however, even when using lossless formats like png:
    * if the file is subsequently opened by another application,
    * that application may rescale the image, which can often cause visible artifacts.
    * <blockquote>
    *     To see this last problem on Windows XP,
    *     call {@link #take()} which returns an image of the entire desktop and write it to a file,
    *     and then open the file with XP's default graphics file viewer ("Windows Picture And Fax Viewer").
    *     This program shrinks the desktop image in order to fit it inside the program's window,
    *     and rescaling artifacts are readily seen, especially if the desktop image has any kind of text in it.
    *     If "Windows Picture And Fax Viewer" instead cropped the image or had a scroll pane, then this should not happen.
    * </blockquote>
    * <p>
    * Acknowledgement: this class was inspired by the program
    * <a href="http://www.discoverteenergy.com/files/ScreenImage.java">ScreenImage</a>.
    * Differences from the above program:
    * <ol>
    *  <li>this class uses {@link BufferedImage#TYPE_INT_ARGB} instead of {@link BufferedImage#TYPE_INT_RGB} in order to preserve alpha</li>
    *  <li>this class's {@link #formatNameDefault default image file format} is PNG instead of JPEG</li>
    *  <li>this class's <code>take</code> methods simply take snapshots and never have the side effect of writing image files</li>
    *  <li>this class added a version of <code>take</code> which can get a snapshot of a region of a Component</li>
    *  <li>
    *          when taking a snapshot of a region of a Component or JComponent,
    *          the Rectangle that specifies the region always has coordinates relative to the origin of the item
    *  </li>
    * </ol>
    * See also:
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=57&threadID=597936">forum discussion #1 on screen shots</a>
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=256&threadID=529933">forum discussion #2 on screen shots</a>
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=57&threadID=622393">forum discussion #3 on screen shots</a>.
    * <p>
    * It might appear that this class is multithread safe
    * because it is immutable (both its immediate state, as well as the deep state of its fields).
    * However, typical Java gui code is not multithread safe, in particular, once a component has been realized
    * it should only be accessed by the event dispatch thread
    * (see <a href="http://java.sun.com/developer/JDCTechTips/2003/tt1208.html#1">Multithreading In Swing</a>
    * and <a href="http://java.sun.com/developer/JDCTechTips/2004/tt0611.html#1">More Multithreading In Swing</a>).
    * So, in order to enforce that requirement, all methods of this class which deal with components
    * require the calling thread to be the event dispatch thread.
    * See the javadocs of each method for its thread requirements.
    * <p>
    * @author bbatman
    public class ScreenShot {
         // -------------------- constants --------------------
         * Defines the image type for the BufferedImages that will create when taking snapshots.
         * The current value is {@link BufferedImage#TYPE_INT_ARGB}, which was chosen because
         * <ol>
         *  <li>the 'A' in its name means that it preserves any alpha in the image (cannot use the "non-A" types)</li>
         *  <li>the "_INT" types are the fastest types (the "BYTE" types are slower)
         * </ol>
         * @see <a href="http://forum.java.sun.com/thread.jspa?threadID=709109&tstart=0">this forum posting</a>
         private static final int imageType = BufferedImage.TYPE_INT_ARGB;
         * Default value for the graphics file format that will be written by this class.
         * The current value is "png" because the PNG format is by far the best lossless format currently available.
         * Furthermore, java cannot write to GIF anyways (only read).
         * <p>
         * @see <a href="http://www.w3.org/TR/PNG/">Portable Network Graphics (PNG) Specification (Second Edition)</a>
         * @see <a href="http://www.w3.org/QA/Tips/png-gif">GIF or PNG</a>
         * @see <a href="http://www.libpng.org/pub/png/">PNG Home Site</a>
         public static final String formatNameDefault = "png";
         // -------------------- take --------------------
         // desktop versions:
         * Takes a screen shot of the entire desktop.
         * <p>
         * Any thread may call this method.
         * <p>
         * @return a BufferedImage representing the entire screen
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take() throws AWTException, SecurityException {
              Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
              Rectangle region = new Rectangle(0, 0, d.width, d.height);
              return take(region);
         * Takes a screen shot of the specified region of the desktop.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param region the Rectangle within the screen that will be captured
         * @return a BufferedImage representing the specified region within the screen
         * @throws IllegalArgumentException if region == null; region's width and height are not greater than zero
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Rectangle region) throws IllegalArgumentException, AWTException, SecurityException {
              if (region == null) throw new IllegalArgumentException("region == null");
              return new Robot().createScreenCapture( region );     // altho not currently mentioned in its javadocs, if you look at its source code, the Robot class is synchronized so it must be multithread safe, which is why any thread should be able to call this method
         // AWT Component versions:
         * Takes a screen shot of that part of the desktop whose area is where component lies.
         * Any other gui elements in this area, including ones which may lie on top of component,
         * will be included, since the result always reflects the current desktop view.
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param component AWT Component to take a screen shot of
         * @return a BufferedImage representing component
         * @throws IllegalArgumentException if component == null; component's width and height are not greater than zero
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Component component) throws IllegalArgumentException, IllegalStateException, AWTException, SecurityException {
              if (component == null) throw new IllegalArgumentException("component == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Rectangle region = component.getBounds();
              region.x = 0;     // CRITICAL: this and the next line are what make region relative to component
              region.y = 0;
              return take(component, region);
         * Takes a screen shot of that part of the desktop whose area is the region relative to where component lies.
         * Any other gui elements in this area, including ones which may lie on top of component,
         * will be included, since the result always reflects the current desktop view.
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param component AWT Component to take a screen shot of
         * @param region the Rectangle <i>relative to</i> component that will be captured
         * @return a BufferedImage representing component
         * @throws IllegalArgumentException if component == null; component's width and height are not greater than zero; region == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Component component, Rectangle region) throws IllegalArgumentException, IllegalStateException, AWTException, SecurityException {
              if (component == null) throw new IllegalArgumentException("component == null");
              if (region == null) throw new IllegalArgumentException("region == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Point p = new Point(0, 0);
              SwingUtilities.convertPointToScreen(p, component);
              region.x += p.x;
              region.y += p.y;
              return take(region);
         // Swing JComponent versions:
         * Takes a screen shot of <i>just</i> jcomponent
         * (no other gui elements will be present in the result).
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param jcomponent Swing JComponent to take a screen shot of
         * @return a BufferedImage representing jcomponent
         * @throws IllegalArgumentException if jcomponent == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         public static BufferedImage take(JComponent jcomponent) throws IllegalArgumentException, IllegalStateException {
              if (jcomponent == null) throw new IllegalArgumentException("jcomponent == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Dimension d = jcomponent.getSize();
              Rectangle region = new Rectangle(0, 0, d.width, d.height);
              return take(jcomponent, region);
         * Takes a screen shot of <i>just</i> the specified region of jcomponent
         * (no other gui elements will be present in the result).
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param jcomponent Swing JComponent to take a screen shot of
         * @param region the Rectangle <i>relative to</i> jcomponent that will be captured
         * @return a BufferedImage representing the region within jcomponent
         * @throws IllegalArgumentException if jcomponent == null; region == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         public static BufferedImage take(JComponent jcomponent, Rectangle region) throws IllegalArgumentException, IllegalStateException {
              if (jcomponent == null) throw new IllegalArgumentException("jcomponent == null");
              if (region == null) throw new IllegalArgumentException("region == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              boolean opaquenessOriginal = jcomponent.isOpaque();
              Graphics2D g2d = null;
              try {
                   jcomponent.setOpaque( true );
                   BufferedImage image = new BufferedImage(region.width, region.height, imageType);
                   g2d = image.createGraphics();
                   g2d.translate(-region.x, -region.y) ;     // CRITICAL: this and the next line are what make region relative to component
                   g2d.setClip( region );
                   jcomponent.paint( g2d );
                   return image;
              finally {
                   jcomponent.setOpaque( opaquenessOriginal );
                   if (g2d != null) g2d.dispose();
         // -------------------- write --------------------
         * Writes image to a newly created File named fileName.
         * The graphics format will either be the extension found in fileName
         * or else {@link #formatNameDefault} if no extension exists.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param image the BufferedImage to be written
         * @param fileName name of the File that will write image to
         * @throws IllegalArgumentException if image == null; fileName is blank
         * @throws IOException if an I/O problem occurs
         public static void write(BufferedImage image, String fileName) throws IllegalArgumentException, IOException {
              if (image == null) throw new IllegalArgumentException("image == null");
              if (StringUtil.isBlank(fileName)) throw new IllegalArgumentException("fileName is blank");
              File file = new File(fileName);
              String formatName = FileUtil.getExtension(file);
              if (formatName.length() == 0) formatName = formatNameDefault;
              write(image, formatName, file);
         * Writes image to file in the format specified by formatName.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param image the BufferedImage to be written
         * @param formatName the graphics file format (e.g. "pnj", "jpeg", etc);
         * must be in the same set of values supported by the formatName arg of {@link ImageIO#write(RenderedImage, String, File)}
         * @param file the File that will write image to
         * @throws IllegalArgumentException if image == null; type is blank; file == null
         * @throws IOException if an I/O problem occurs
         public static void write(BufferedImage image, String formatName, File file) throws IllegalArgumentException, IOException {
              if (image == null) throw new IllegalArgumentException("image == null");
              if (StringUtil.isBlank(formatName)) throw new IllegalArgumentException("formatName is blank");
              if (file == null) throw new IllegalArgumentException("file == null");
              ImageIO.write(image, formatName, file);
         // -------------------- Test (inner class) --------------------
         * An inner class that consists solely of test code for the parent class.
         * <p>
         * Putting all the test code in this inner class (rather than a <code>main</code> method of the parent class) has the following benefits:
         * <ol>
         *  <li>test code is cleanly separated from working code</li>
         *  <li>any <code>main</code> method in the parent class is now reserved for a true program entry point</li>
         *  <li>test code may be easily excluded from the shipping product by removing all the Test class files (e.g. on Windoze, delete all files that end with <code>$Test.class</code>)</li>
         * </ol>
         * Putting all the test code in this inner class (rather than a shadow external class) has the following benefits:
         * <ol>
         *  <li>non-public members may be accessed</li>
         *  <li>the test code lives very close to (so is easy to find) yet is distinct from the working code</li>
         *  <li>there is no need to set up a test package structure</li>
         * </ol>
         public static class Test {
              public static void main(String[] args) throws Exception {
                   Gui gui = new Gui();
                   EventQueue.invokeLater( gui.getBuilder() );
                   new Timer(1000, gui.getTimerActionListener()).start();
              private static class Gui {
                   private Frame frame;
                   private TextField textField;
                   private JFrame jframe;
                   private JLabel jlabel;
                   private JPanel jpanel;
                   private int count = 0;
                   private Runnable getBuilder() {
                        return new Runnable() {
                             public void run() {
                                  System.out.println("Creating a Frame with AWT widgets inside...");
                                  frame = new Frame("ScreenShot.Test.main Frame");
                                  textField = new TextField();
                                  textField.setText( "Waiting for the screen shot process to automatically start..." );
                                  frame.add(textField);                              
                                  frame.pack();
                                  frame.setLocationRelativeTo(null);     // null will center it in the middle of the screen
                                  frame.setVisible(true);
                                  System.out.println("Creating a JFrame with Swing widgets inside...");
                                  jframe = new JFrame("ScreenShot.Test.main JFrame");
                                  jlabel = new JLabel(
                                       "<html>" +
                                            "To be, or not to be: that is the question:" + "<br>" +
                                            "Whether 'tis nobler in the mind to suffer" + "<br>" +
                                            "The slings and arrows of outrageous fortune," + "<br>" +
                                            "Or to take arms against a sea of troubles," + "<br>" +
                                            "And by opposing end them?" + "<br>" +
                                            "To die: to sleep; No more;" + "<br>" +
                                            "and by a sleep to say we end" + "<br>" +
                                            "The heart-ache and the thousand natural shocks" + "<br>" +
                                            "That flesh is heir to," + "<br>" +
                                            "'tis a consummation Devoutly to be wish'd." + "<br>" +
                                       "</html>"
                                  jpanel = new JPanel();
                                  jpanel.setBorder( BorderFactory.createEmptyBorder(20, 20, 20, 20) );
                                  jpanel.add(jlabel);
                                  jframe.getContentPane().add(jpanel);
                                  jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                  jframe.pack();
                                  Point p = frame.getLocation();
                                  p.translate(0, frame.getSize().height  + 10);
                                  jframe.setLocation(p);
                                  jframe.setVisible(true);
                   private ActionListener getTimerActionListener() {
                        return new ActionListener() {
                             public void actionPerformed(ActionEvent evt) {
                                  try {
                                       switch (count++) {
                                            case 0:
                                                 displayMessage("Taking a screen shot of the entire desktop...");
                                                 ScreenShot.write( ScreenShot.take(), "desktop.png" );
                                                 break;
                                            case 1:
                                                 displayMessage("Taking a screen shot of the central rectangle of the desktop...");
                                                 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
                                                 Rectangle region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(region), "desktopCenteredRectangle.png" );
                                                 break;
                                            case 2:
                                                 displayMessage("Taking a screen shot of the TextField...");
                                                 ScreenShot.write( ScreenShot.take(textField), "textField.png" );
                                                 break;
                                            case 3:
                                                 displayMessage("Taking a screen shot of the central rectangle of the TextField...");
                                                 d = textField.getSize();
                                                 region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(textField, region), "textFieldCenteredRectangle.png" );
                                                 break;
                                            case 4:
                                                 displayMessage("Taking a screen shot of the JLabel...");
                                                 ScreenShot.write( ScreenShot.take(jlabel), "jlabel.png" );
                                                 break;
                                            case 5:
                                                 displayMessage("Taking a screen shot of the central rectangle of the JLabel...");
                                                 d = jpanel.getSize();
                                                 region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(jpanel, region), "jpanelCenteredRectangle.png" );
                                                 break;
                                            default:
                                                 System.exit(0);
                                                 break;
                                  catch (Throwable t) {
                                       t.printStackTrace(System.err);
                             private void displayMessage(String text) {
                                  System.out.println(text);
                                  textField.setText(text);
                                  frame.pack();
                                  frame.invalidate();
                             private Rectangle getCenteredRectangle(Dimension d) {
                                  int x = d.width / 4;
                                  int y = d.height / 4;
                                  int width = d.width / 2;
                                  int height = d.height / 2;
                                  return new Rectangle(x, y, width, height);
    }

  • How do I stop graphics on safari

    How do I stop graphics on safari while surfing so as to save Kbs.

    Safari > Preferences > Appearance
    Deselect:  Display images when the page opens

  • How to save partial installation of archboot?

    Hi,
    I am repeatedly installing archboot LTS x86_64. Still trying to setup a UEFI, GTP, GRUB2 boot.
    I'm using the setup script but skipping the last step and installing GRUB2 "by hand".
    What I would dearly like to know is how to save the results of those first steps so I don't have to
    keep starting afresh (not only does it get boring but it takes a significant amount of time with a network install).
    Trouble with using the script is that /tmp/install clearly gets wiped when you restart.
    Does anyone have any suggestions please?
    Battus

    alphaniner wrote:You're doing the repos a disservice if you're downloading the packages over and over.  Find a way to preserve them: save them on another device and copy them over during install, create a dedicated partition to mount at /var/cache/pacman/pkg, nfs share on another machine mounted at /var/.../pkg, etc.
    @alphaniner, I suppose you're right... trouble is the problem at hand was already causing me such a headache, that if I made the situation more complicated still, I would have had to give up...
    and I can't imagine that my downloads of "base" from a very local repo were more than a few drops in the ocean.
    Never mind, even without encouragment I managed to get my first pure UEFI / GPT / GRUB2 boot a few minutes ago... Hooray!
    True the screen went black after ten seconds or so but that looks like a video problem (probably because I have no graphics card).

Maybe you are looking for

  • How can I delete iTunes purchased music

    Music I purchsed from iTunes is synced to my iPad. However, there are a couple of tracks I do not want but can find no way to delete them. I have deleted them from my iMac and Mac Mini but they still apear on the iPad. It's no big deal but I like to

  • If I upload to iCloud all my pictures....?how can I download them to another device?  (From iPhone to iPad mini)

    I am backing up all my pictures (from a long trip to Italy) to the iCloud from iPhone......I want to download the onto my iPad before I leave space on my iPhone. How do I download them from the cloud??? You have to talk to me like If I am a second gr

  • Class Cast Exception when Rich Table is typecasted with Rowset

    The following line throws a Class Cast Exception if(RowCountHelper.containsNoRows((RowSet)getAddMembersTable())) The above piece of code has been working since long & it started throwing the class cast exception recently. Not sure how the line of cod

  • CF9 Not Rendering Flash Charts

    We just upgraded two Windows Server 2008 R2 servers, one development, one production, from CF7 to CF9 (9.01).  Did the same installation on both.  For some reason, the Dev server will not render charts (created in Web Charts 3D) in Flash, but will us

  • What internet security suites does Firefox work with completely?

    My Kaspersky internet website blocker and advisor won't work with the new Firefox update. This is why I am not updating. What security internet suites does Firefox work completely with. This is a constant problem with Kaspersky which is one of the hi