Rotobrush frame by frame

I use After Effects CC on Mac.  I'm using rotobrush, I use page up and page down for seeing and adjusting each frame.  But when video plays does appear some rotobrush paths that I did not made.   And it cannot be seen when I do my frame by frame check.
Problem may be caused because video was recorded in a camera which records HD at 60fps but after list clips on screen if they were recorded at 29.97 fps.   Clips have .MTS extension.
I'm developing final video at 59.97 fps, I tried changing to 29.97 but problem stills unsolved.   Some sugestion ?

I took a while for reading manuals and watching videos.  Don't see any other technique for using rotobrush instead of
1-selecting a frame
2-applying rotobrush
3-page up to next frame
4-applying roto again and again, frame by frame
as is shown in this video
http://tv.adobe.com/watch/no-stupid-questions-with-colin-smith/advanced-roto-brush-in-afte r-effects/
if there are another technique for using it I should like to learn it.

Similar Messages

  • Can't preview Rotobrush frame by frame

    I'm having difficulty previewing rotobrush frame by frame, page up and page down does not work on After Effects CC on Mac. I wonder what am I doing wrong?

    Are you saying that you can't use Page Up and Page Down in After Effects at all? Like, in a composition, when you press Page Up, nothing happens?
    Is your AE installed as English? Is your keyboard an English one?

  • Rotoscoping - it only roto's the first frame

    What I have done:
    Created a video clip with my Canon GL2 featuring a person against a bright background.
    I then used Adobe Premier CS5 to create an AVI of the sequence. (called it ROTO4.avi)
    I then opened CS5 After Effects, imported the clip into the composition timeline.
    I then changed the framerate of the composition to 59.94 (cause a previous attempt told me to do so).
    I then went under LAYER and Open New Layer.
    I then clicked the TOP rotobrush icon (can't find another one anywhere) and began outlining my subject and de-outlining the background. I have a perfect pink line around my subject (on frame1).
    I then drag the timeline bar and it creates the (mask?) on the first frame only and no subsequent frames.
    I switch to composition view and sure enough the first frame is beautiful (subject complete, background now a black screen), but no other frames are generated rotoscooped.
    Arghhh, I've been at this for about an hour and only first frame is ROTO'd.
    Help?
    Montie

    Montie - this is the line that I have the most suspicion about:
    I then drag the timeline bar.
    What exactly are you dragging?
    The recommended way to engage Rotobrush at this point is to press Page Down to move forward a frame, or press the spacebar to begin preview, not to jump to the end of your footage. Rotobrush only analyzes frames under the playhead, and only frames that are inside a span of time near the base frame you drew the strokes on. So if you move the playhead beyond the span it won't have any frames to analyze.
    This is what a Rotobrush span looks like. The span is the gray area with < and > arrows, the base frame is the yellow mark, and the analyzed frames are the green marks extending from the base frame mark.
    Read here about base frames and spans.
    To me it sounds like you are expecting Rotobrush to do all the work magically when you go to the end of your footage, and that's not the case. It needs to analyze each frame, and you need to keep an eye on the analysis because Rotobrush isn't actually magic, it's just some very cool math.
    Note the part in that document about the default span length: 20 frames forward and 20 frames backward. The reason for the short length is because the farther you get from a base frame the larger the probability for inaccuracies. As you move forward through each frame, check for inaccuracies and draw new strokes as necessary. Each time you draw a stroke, a new base frame is created and the span is extended. If you happen to have a sequence of 20 frames that don't need corrections, you can extend the length of the span and continue. (You could extend the span to the entire length of your clip, but you still need to pay attention to the analysis and make corrections.)
    I hope that helps.
    -=TimK

  • How to customize Auto-trace selection over multiple frames?

    Hi all,
    I'm working on an After Effects CS5 project that involves a lot of compositing and my material is all in high-contrast black and white. I'm looking for a way to mask individual parts of a particular clip: e.g. I have a 10 second clip with two people standing in it, one on the right and one on the left. I'd like to isolate the person on the right and hide everything else, including the background and person on the left.
    I used Auto-trace to quickly find the outlines of my image and it works great since my picture is such high-contrast. Only thing is, I'm not sure how to remove the person on the left from the auto-trace selection.
    I have "work area" selected in my Auto-trace options, which is amazing as it makes the Auto-trace selection span over my entire 10 second clip (as opposed to me needing to apply it frame-by-frame), but now the problem lies in removing person on the left from the entire 10 second clip. I went to the beginning of the new layer (I have the "Apply to new layer" box checked in my Auto-trace options), used the "Delete Vertex Tool" (the pen tool with a minus sign on it), and removed the selection of the person on the left, but the selection exists in all the frames following it (i.e. 9 seconds and 29 frames), and only gets removed from the particular frame I was working on.
    Is there any way to get AE to remove the selection over the span of the clip as opposed to only the individual frame I'm working on?
    BTW, I'm not married to this method. If anyone has a better method I could use, I'm all ears, although I would like to see this through if possible.
    Any help is much appreciated!
    Thanks
    Mike

    Thanks for the tips. I checked out the super tight junk matte tutorial, and this works well for green screened content but the issue I have is that my image is completely duotone - i.e. I only have black and white in the image. See here for an example:
    http://mysite.verizon.net/vze15wlb3/IOBG012.jpg
    So my challenge is trying to get certain portions of the image excluded, and I'm having a hard time doing this using rotobrush. In this case, I want to exclude the face on the left while auto-tracing or somehow rotobrushing the face on the right. Any other suggestions? I was hoping for an easier way short of applying tons of junk mattes and precomping.

  • Frame rate for Roto Brush

    when i try to rotobrush myself to float,then i get an error screen saying that the frame rate mismatched its making everyones voices high too the computer is speeding it up?

    You have not provided any useful technical information like system specs, exact error messages, version info, details about your footage and comp and so on. Nobody can help you based on vague and generic statements.
    Mylenium

  • Open and edit animated .gif while preserving frame timing

    CS4 Premium Design Edition, Win XP
    I was disappointed with the removal of Image Ready from CS3 because although some of the functionality was placed into Photoshop 10, there was no way to open and edit an existing animated .gif while preserving the timing of each individual frame. I was told on the PS forum at the time that I really needed to use Fireworks. I resented that, because I was very happy with Image Ready and I didn't want to have to learn a new application just to gain functionality that had been included in previous versions of PS/IM.
    I've now got CS4 Premium Design Edition which of course includs Fireworks... and here's what Help has to say on the subject of imported .gifs.
    "Note: When you import an animated GIF, the state delay setting defaults to 0.07 seconds. If necessary, use the States panel to restore the original timing."
    This is no use to me. What if I don't know the individual frame timings? What if there are 200 frames with varying timings?
    Simple question: which current Adobe product is capable of importing a .gif while retaining the frame timings? If anyone knows, or if I've misunderstood the nature of the Fireworks Help quote above, I'd really appreciate some input here. Thanks :)
    Not so simple question: why was an excellent gif-editing application thrown out to have its functionality partially replaced by a bunch of scripts and half-effective workarounds cooked up by desperate users ("import a gif by using the video import and typing *.* into the filename box..")? It's a fair question I think.
    Mark

    Hi Bob, that's not glib at all, it's a reasonable question.
    I uninstalled it along with everything else when I installed CS3, in the reasonable expectation that whatever replaced IR would be at least equal in functionality.
    Perhaps I should just dig out CS2 and install IM from there, but I have some serious reservations about doing so, because I don't know if/how a partial install of CS2 will impact upon my installation of CS4, and I'm not confident of getting support.
    I am also curious to know if/why Adobe actually removed basic functionality without replicating or replacing it in their other software. I really want to know: which recent, currently supported Adobe product
    should I be using in order to regain this functionality? Or do Adobe no longer produce a geniuinely comprehensive .gif-editing application?
    Mark

  • Animated GIF ignoring frame timing

    I am trying to create simple animated GIFs with a few layers
    of text that simply fade in and fade out in sequence. My initial
    attempt worked perfectly. Most frames use the default 7/100's of a
    second delay as they fade. A few frames were manually set to much
    longer delays so that the text pauses, before fading out to be
    replaced by the next text.
    When I reopened the file, to adjust the background color, and
    then re-saved it, the GIF now plays straight through, ignoring the
    timing of each frame. Nothing I do now can get it to pause on the
    appropriate frames. I've tried cutting the symbols out and pasting
    them into a new file, removing the animation from the symbols and
    reapplying it, etc.
    Any ideas, anyone?
    Thanks in advance.

    None, None.

  • Creating a Gif is different frame rate

    If I have an uncompressed .AVI file that I created in After Effects CS5.5 which is 23.976 fps, and load it in Adobe Media Encoder CS5.5, and tell it to create a .GIF of it, at an output fps of 23.976, when I load the created .GIF into Adobe After Effects it tells me the frame rate is 25 fps and there is a black frame padded on the end.  I want the frame rate of the GIF to be what I ask it to be, ie. 23.976, with no additional black frames.
    Here's what happened with screenshots:
    1. I load the uncompressed AVI file that was created in Adobe After Effects CS5.5 into Adobe Media Encoder CS5.5.  Note below that Adobe Media Encoder is saying that the source clip is 23.976 fps, and that the export settings are to create an animated GIF at 23.976 fps.
    2. After Adobe Media Encoder CS5.5 has said "done" (Encoding Completed Succesfully) for this export to a .GIF, if I take that .GIF file that Adobe Media Encoder has just created into Adobe After Effects CS5.5, this is what it says:
    As can be seen above, Adobe After Effects CS5.5 is saying the GIF file that Adobe Media Encoder CS5.5 has just encoded is actually 25 fps, not 23.976 fps like I told it to be exported as.  Also, the GIF Adobe Media Encoder has created is 10 frames long, whereas my original uncompressed AVI is 9 frames long.
    Edit: I've just been reading up on the GIF format and it seems it doesn't store a frame rate but instead stores a frame delay, which is in hundredths of a second.  If this is just an integer, is this the reason for the displayed frame rate discrepancy, ie. 1 frame at 23.976 fps  would be 4.1708 hundredths of a second I think, and 1 frame at 25 fps would be 4 hundredths of a second I think - both rounded to the nearest integer would be 4 hundredths of a second so would the frame delay be set to "4" for both 23.976 fps and 25 fps? (there is also the fact that some short time will be taken for the drawing of the frame)
    Though even with the above, it shouldn't be increasing the amount of output frames.  It converts it correctly (no additional frames) if I use VirtualDub to convert the AVI to GIF instead of Adobe Media Encoder CS5.5.

    Thanks.  Could you get them to also check other parts of the code too.  eg. when I had a work area set in Adobe After Effects CS5.5 and then loaded that project into Adobe Media Encoder (dynamic link etc.) and rendered just the work area I think it was about a frame out then too - I don't think it was a GIF in that case but another type (maybe AVI/H264).

  • Animated Gif- want to loop some frames, then others

    I'm creating some web banners, and I need the file size to stay low, but would like to have a 3 or 4 frame cycle loop for a while, then go to a frame that holds for several seconds, then back to the loop, and then another frame that holds. So really all there is is 6 total frames, but in order to make it play out how I want,  I have to set like 30 frames in the animation window, each one of the 6 total, and then the file size is enormous compared to  what really should be possible, its basically treating it as though I have 30 distinct frames. Isn't there a way to make an extended animation using a only handful of frames, and have the file size not balloon up?
    Another thing I'm trying to do, to cut down in file size, is have the animated portion be real lossy, since its quick and detail is not important there, but have the frames that hold for a while be higher quality. But there doesn't seem to be a way to do that... why not?
    Thanks for any advice,
    Andrew

    But there doesn't seem to be a way to do that... why not?
    Well, you are using GIF, aren't you? That pretty much covers all the options. These are limitations in the file format, plain and simple. There is no such thing as a per-frame local palette, all 256 colors are distributed across all frames. So if the content requires a certain amount of colors, the algorithm merely tries to balance itself out. Likewise, the frame behavior is dictated by the file format specs, so there is realyl nothing you can do. As Zeno said, you'd have much better luck doing this in Flash using pre-processed PNGs and a few simple timeline commands with goto().
    Mylenium

  • Animated GIF frame loss

    I have an applet that has a JPanel with a JLabel in it. That JLabel was created with an ImageIcon constructor with an animated gif image. The gif has eleven frames (each with replace set) and is set to loop. When I bring up the applet the image animates through the first 7 frames then stops. I can File/Open the gif in Netscape and it looks fine - animates all images and loops. Looking at it with:
    setDebugGraphicsOptions(DebugGraphics.BUFFERED_OPTION); or FLASH_OPTION
    it looks good until that 7th frame then I start to see flash of grey the size of the JLabel.
    I understand that the ImageObserver defaults to the JLabel. But I have tried directly setting it with no joy. I have also tried calling .flush() on the image with no joy. So I tried a different animated gif and it stopped on the 3rd frame (but also appears fine in a browser).
    I am on day 2 of trying to figure this out (pulling my hair out).
    I cut this down quite a bit, so there may be syntax errors.
    public class RRR extends JApplet implements RRRConsts
    public void init()
    loadImages();
    myJPanel = new MyJPanel();
    contentPane.add(myJPael);
    private void loadImages()
    try
    problemImage = loadImage(new URL(getDocumentBase(),
    "problem.gif"));
    catch (Exception e)
    { logger.log(Level.SEVERE, "Unable to load images", e); }
    private Image loadImage(URL url) throws InterruptedException
    Image image = getImage(url);
    MediaTracker tracker = new MediaTracker(this);
    tracker.addImage(image, 0);
    tracker.waitForID(0);
    return image;
    MyJPanel myJPanel = null;
    static Image problemImage = null;
    class MyJPanel extends JPanel implements RRRConsts
    MyJPanel()
    setLayout(null);
    setBounds(0,0,468,540);
    setOpaque(false);
    buildUI();
    private void buildUI()
    myLabel = new MyLabel();
    add(myLabel);
    private MyLabel myLabel = null;
    class MyLabel extends JLabel implements RRRConsts, ActionListener
    MyLabel()
    super(new ImageIcon(RRR.problemImage));
    }

    I just had the same problem. It seems that when using an animated gif as ImageIcon it will not be loaded compeltly if it is too large. The maximum seems to be somewhere between 60 - 70 KB.
    I managed to use a higher compression on my gifs to make them smaller, but I haven't found any general solution yet.

  • Any way to get frame accurate in icon view mode?

    Does anyone know if there is a way set frame accurate in points in icon view mode?  I know that if you are "hover scrubbing" a clip, and then click on it you can use the JKL keys to shuttle through the footage.  But is there any way to go frame-by-frame through the footage as well?
    I ask because I have a 4-camera shoot where the clips were synced by a slate clap.  I'd like to make a multicam clip from the shots so am going through and setting the "clap" as the in point of each clip, and then using them as sync points for the multicam clip.  I hover scrub to the general area of the slate clap (works great) then use the JKL key to narrow in "clap" even more (also works great).  However, it is nearly impossible to stop exactly on the frame where the slate hits using the JKL keys.  So I would like to get in the general vicinity using JKL, and then use some other keys or method to get to the exact frame of the "clap".  One would assume that the arrow keys would do this, but they don't. 
    Does anyone know if there is a way to accomplish this?  Thanks in advance for any help.

    I understand your point, and it never ocurred to me that I part of my normal workflow when doing things like that to more than a few clips is to select all of the clips and put them all in the Source Monitor with a single command. (Select them all, right click, and select "Open in Source Monitor".) So I don't go back and forth between windows. I guess I have been doing it so long I missed that step in the explanation. Sorry about that. Also, please understand that I skipped CS4 and CS5 so when I started using CS6 I have never really been comfortable with the hover scrub for anything serious. Not yet anyway.
    I figure that all of the clips will end up in the Source Monitor anyway before they hit the timeline, so why not put them up there and as I finish with each one I close that window and start on the next one.
    Those of us who go back to when Premiere became Premiere Pro have been waiting for some of these features a very long time. Slap-your-head it might be to you or me, but Adobe only has so much money to pay engineers and there is always something more important to work on. Like becoming codec agnostic or handling huge frame sizes. Adobe has borrowed many features from FCP, but it is still a work in progress. We just submit feature requests and attempt to convince others to do the same. You can't imagine how much time we spent a decade ago getting people to create the proper sequence. Now you just drag a clip to the New Item button and your sequence is perfect. That is magic to someone like me, who taught people how to use Premiere Pro 1.5 by copying FCP tutorials and recreating them in Premiere Pro (for Lynda.com) using the same footage.
    Jim Simon is often quite vocal about things he would rather see done that some of the requests. I agree with him most of the time, but every now and then a little thing I think should be done is not on his list and he will let me know in no uncertain terms why he thinks what he thinks. He can be pretty persuasive and it is difficult to argue with his logic. The Adobe folks read these forums, yes, but they read the feature requests and look to see how many customers want certain things done. Not a bad way to prioritize. Now that more FCP people will be submitting requests, there is a good chance that you will see more features that you want.
    So, while it may be obvious to you, it isn't obvious to Adobe until the masses speak. I suggest that you might want to consider being a rabble rouser, getting like minded people to put in the same requests. That is probably the best way to get what you want.
    As for going in reverse.... I think that if you have never had some of these things, they are not important to you. They are not all like adding reverse. Some are but some of these are like the tailfin on the 1959 Caddilac. The higher the better back then. But are they necessary?

  • IMAQ AVI read frame performanc​e

    I've been playing around with the read AVI with buffer example in the Developer Community.  It reads all the frames of an AVI into memory and then plays them back at the appropriate frame rate.  This works ok with very small AVI files but with anything larger it gets slower and slower until it almost stops loading the AVI.  At that point it seems to be loading less than 5 frames per second and is killing my cpu.  I have plenty of free RAM during this.     
    https://decibel.ni.com/content/docs/DOC-8479
    This is the case with the play AVI example that comes with Labview too (without a buffer) which just loads and plays one frame at a time.  Can someone suggest a way to improve the performance of an AVI player in Labview?  My ultimate goal is to read an AVI and detect changes in motion of objects by comparing two frames at a time.  These AVIs are going to be at least 5 minutes in duration at a frame rate of 30 fps.
    I'm using Labview 2009 with the Vision Developer installed.
    Attachments:
    image_png.png ‏77 KB

    VTKim wrote:
    Hi,
    One thing we could implement is a compression filter that is on the IMAQ AVI Create VI used in conjunction with the IMAQ AVI Get Filter Names VI.  Also, what is the RAM available on your computer and what size images are you acquiring and saving to AVI?  Thanks!
    Kim
    Thanks for replying.  I'm running labview 2009 on a dual core pentium 2.3 GHz with 4 Gigs of ram.  It typically has 2 Gigs free while running the program.
    I'm not tryingt write an AVI, I'm trying to read an AVI.  The frames are 352 x 240 in size.  I've tried several read AVI examples and they all act the same way.  They slow down quickly and the hard drive and CPU are really cranking away.

  • How can i slide a sound track one frame at a time in Pre 10

    i do a lot of music videos where i record audio separtly from the video and then sync them and i have a lot of trouble getting them in sync, does anyone have any good tricks to do this? also, can i move said sound track one frame at a time in either direction to help get these tracks to sync up?
    Thanks

    If you zoom to the max, and watch that little TimeCode box (it pops up, when you begin dragging), just look at the last two digits, as those are the Frames. Even with my clumsy hands and fingers, I can nail the displacement to Frame-accurate standards.
    Now, some other NLE's go a step further, in that when the Clip is Selected, one can nudge it along, with modifier keys and the Left-Right Cursor keys. I do not think that has been added to PrE 10, but would be a great Feature Request.
    Good luck,
    Hunt
    [Edit] Well shut my mouth! After you Select the Clip (unlinking with Alt+click, if muxed), just hold down the Alt key, while hitting the Left-Rigt Cursor keys!!!! Forget that Feature Request.
    Message was edited by: Bill Hunt

  • Start or Stop expression at a given frame?

    hello to everyone on the support forum.
    I searched the forum but wasn't able to find anything quite good for resolving the matter.
    This is something that my IT group Charles Stinson, Nick Carangi, and Sandra Connor have been working on fixing for a while.
    I'm getting into expression but the issue is that I am not able to start or stop an expression at a given moment.
    I.E. If i want to wiggle(3, 10) until frame 100.
    How can I set this up?
    Thanks in advance.
    After Effects Cs5.5

    Rick and Dave are correct that it may be easiest to split the layer, but there are examples in After Effects Help for doing this with expressions, here:
    http://helpx.adobe.com/en/after-effects/using/expression-examples.html#expression_example_ start_or_stop_wiggle_at_specific_time

  • Data from a frame to another (bis)

    Hi,
    I have a first Frame DataPanelCli, when I use the button "Rechercher" in the class ButtonPanelCli, I find the informations of my company in the class FindRecCli. After when I use the button "STRUCTURE", I use the JFrame StructRecCli BUT I CAN NOT show the data coming from my first Frame.
    Here is the programme, could you please help me.
    regards.
    Thierry
    import java.util.*;
    import java.sql.*;
    import java.io.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.awt.Container;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.text.*;
    import java.lang.String;
    public class AppClient extends JFrame {
         private DataPanelCli screenvarcli;
         private JTextArea msgout;
         private Connection dbconn;
         public AppClient() {
              //titre fen�tre
              super( " APPLICATION CLIENT");
              // set up GUI environment
              Container p = getContentPane();
              screenvarcli = new DataPanelCli();
              msgout = new JTextArea( 8, 40);
              p.setLayout( new FlowLayout() );
              p.add( new JScrollPane(screenvarcli) );
              p.add( new JScrollPane(msgout) );
              // DB Connection
              try {
                   String url = "jdbc:odbc:Access";
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                   // Cr�ation d'une liaison
                   dbconn = DriverManager.getConnection(url, "dba", "sql" );
                   msgout.append("Connection successful !\n");
              catch (ClassNotFoundException cnfex) {
                   cnfex.printStackTrace();
                   msgout.append("Connection unsuccessful\n" +
                        cnfex.toString());
              catch (SQLException sqlex) {
                   sqlex.printStackTrace();
                   msgout.append("Connection unsuccessful\n" +
                        sqlex.toString());
              catch (Exception excp) {
                   excp.printStackTrace();
                   msgout.append(excp.toString());
              // Complete GUI
              ButtonPanelCli controls = new
              ButtonPanelCli(dbconn, screenvarcli, msgout);
              p.add(controls);
    //          RadioButtons rb = new RadioButtons(dbconn, screenvarcli, msgout);
    //          p.add(rb);
              setSize(500,475);
              show();
         public static void main( String args[]) {
              AppClient cli = new AppClient();
              cli.addWindowListener(
                   new WindowAdapter() {
                        public void windowClosing(WindowEvent e) {
                             System.exit(0);
    class DataPanelCli extends JPanel {
         JTextField ICCliFact, INSociete,
              ILAdresseA, ICPostal, ILLocalite, ICPays;
         JLabel LCCliFact, LNSociete,
              LLAdresseA, LCPostal, LLLocalite, LCPays;
         public DataPanelCli() {
              //Label Panel
              JPanel labelPanelCli = new JPanel();
              labelPanelCli.setLayout( new GridLayout(6, 1));
              LNSociete = new JLabel( "Nom ", 0);
              labelPanelCli.add(LNSociete);
              LCCliFact = new JLabel( "Num�ro Client", 0);
              labelPanelCli.add(LCCliFact);
              LLAdresseA = new JLabel( "Adresse ", 0);
              labelPanelCli.add(LLAdresseA);
              LCPostal = new JLabel( "Code Postal ", 0);
              labelPanelCli.add(LCPostal);
              LLLocalite = new JLabel( "Localite ", 0);
              labelPanelCli.add(LLLocalite);
              LCPays = new JLabel( "Pays ", 0);
              labelPanelCli.add(LCPays);
              //TextField Panel
              JPanel screenvarcliPanel = new JPanel();
              screenvarcliPanel.setLayout( new GridLayout(6, 1));
              INSociete = new JTextField("Enter Name - click RECHERCHER", 20);
              screenvarcliPanel.add(INSociete);
              ICCliFact = new JTextField( 20);
              screenvarcliPanel.add(ICCliFact);
              ILAdresseA = new JTextField( 20);
              screenvarcliPanel.add(ILAdresseA);
              ICPostal = new JTextField( 20);
              screenvarcliPanel.add(ICPostal);
              ILLocalite = new JTextField( 20);
              screenvarcliPanel.add(ILLocalite);
              ICPays = new JTextField( 20);
              screenvarcliPanel.add(ICPays);
              // Accessibility Section - relate labels and text fields
              // for use by assistive technologies
              LNSociete.setLabelFor( INSociete);
              LLAdresseA.setLabelFor( ILAdresseA);
              LCPostal.setLabelFor( ICPostal);
              LLLocalite.setLabelFor( ILLocalite);
              LCPays.setLabelFor( ICPays);
              setLayout( new GridLayout( 1, 2));
              add( labelPanelCli);
              add( screenvarcliPanel);
    class ButtonPanelCli extends JPanel {
         public ButtonPanelCli( Connection dbc, DataPanelCli scv, JTextArea msg ) {
              setLayout( new GridLayout( 2 ,0 ));
              JButton findcli = new JButton( "Rechercher" );
              findcli.addActionListener( new FindRecCli( dbc, scv, msg ));
              add( findcli );
              JButton addcli = new JButton( "Ajouter" );
              addcli.addActionListener( new AddRecCli( dbc, scv, msg ));
              add( addcli );
              JButton clearcli = new JButton( "Clear" );
              clearcli.addActionListener( new ClearScreenCli( scv ));
              add( clearcli );
              JButton printcli = new JButton( "Impression" );
    //          printcli.addActionListener( new PrintRecCli( dbc, scv, msg ));
              add( printcli );
              JButton structcli = new JButton( "STRUCTURE" );
              structcli.addActionListener( new StructRecCli( dbc, scv, msg ));
              add( structcli );
              JButton commerccli = new JButton( "COMMERCIAL" );
    //          commerccli.addActionListener( new CommercRecCli( dbc, scv, msg ));
              add( commerccli );
              JButton financli = new JButton( "FINANCIER" );
    //          financli.addActionListener( new FinanRecCli( dbc, scv, msg ));
              add( financli );
    class ClearScreenCli implements ActionListener {
         private DataPanelCli screenvarcli;
         public ClearScreenCli( DataPanelCli scv ) {
              screenvarcli = scv;
         public void actionPerformed( ActionEvent e ) {
              screenvarcli.ICCliFact.setText( "" );
              screenvarcli.INSociete.setText( "" );
              screenvarcli.ILAdresseA.setText( "" );
              screenvarcli.ICPostal.setText( "" );
              screenvarcli.ILLocalite.setText( "" );
              screenvarcli.ICPays.setText( "" );
    // Recherche Ajout Maj record
    // FIND NUMERO CLIENT
    class FindRecCli implements ActionListener {
         private DataPanelCli screenvarcli;
         private JTextArea msgout;
         private Connection dbconn;
         public FindRecCli( Connection dbc, DataPanelCli scv, JTextArea msg ) {
              dbconn = dbc;
              screenvarcli = scv;
              msgout = msg;
         public void actionPerformed( ActionEvent e ) {
              try {
                   String rechnom = new String();
                   rechnom = screenvarcli.INSociete.getText();
              if ( !rechnom.equals( "" )) {
                   Statement statement = dbconn.createStatement();
                   String query = "SELECT * " +
                        "FROM Cli_fact, Adresse " +
                        "WHERE Cli_fact.n_societe_c = '" + rechnom + "' " +
                        "AND c_adresse = c_cli_fact " +
                        "AND c_type_adr = '02'";
    //                    "WHERE n_societe_c = '" +
    //                    rechnom + "' ";
                   msgout.append( "\nSending query " +
                   dbconn.nativeSQL( query ) + "\n" );
                   ResultSet rs = statement.executeQuery( query );
                   display( rs );
                   statement.close();
              else
                   screenvarcli.INSociete.setText( "Entrer le NOM de Soci�t� ");
              catch ( SQLException sqlex ) {
                   msgout.append( sqlex.toString() + sqlex.getMessage() );
         // Display results of query
         public void display( ResultSet rs ) {
              try {
                   rs.next();
                   int recordNumber = rs.getInt( 1);
                   if ( recordNumber != 0 ) {
                        screenvarcli.ICCliFact.setText( String.valueOf(recordNumber) );
                        screenvarcli.INSociete.setText( rs.getString(2));
                        screenvarcli.ILAdresseA.setText( rs.getString(35));
                        screenvarcli.ILLocalite.setText( rs.getString(32));
                        screenvarcli.ICPostal.setText( rs.getString(31));
                        screenvarcli.ICPays.setText( rs.getString(33));
                        msgout.append( "\n Enregistrements trouv�s!!!!!!!\n" );
                   else
                        msgout.append( "\nPas d'enregistrements trouv�s\n" );
              catch ( SQLException sqlex ) {
                   msgout.append( "\n*** Nom de Soci�t� pas dans la data Base ***\n" );
    // ADD CLIENT
    class AddRecCli implements ActionListener {
         private DataPanelCli screenvarcli;
         private JTextArea msgout;
         private Connection dbconn;
         public AddRecCli( Connection dbc, DataPanelCli scv, JTextArea msg ) {
              dbconn = dbc;
              screenvarcli = scv;
              msgout = msg;
         public void actionPerformed( ActionEvent e ) {
              try {
              Statement statement = dbconn.createStatement();
              String rechnom = new String();
              rechnom = screenvarcli.INSociete.getText();
              if ( !rechnom.equals( "" )) {
                   String query = "INSERT INTO cli_fact (" +
                   "n_societe_c) VALUES ('" +
                   screenvarcli.INSociete.getText() + "')";
                   msgout.append( "\nSending query " +
                   dbconn.nativeSQL( query ) + "\n" );
                   int result = statement.executeUpdate( query );
                   if ( result == 1 ) {
                   // read just inserted rec to obtain c_cli_fact field
                   // needed to place STRUCTURE COMMERCIAL FINANCIER
                   msgout.append( "\nInsertion r�ussie\n" );
                   try {
                   query = "SELECT * FROM cli_fact WHERE n_societe_c='" +
                        rechnom + "'";
                   ResultSet rs = statement.executeQuery( query );
                   rs.next();
                   screenvarcli.ICCliFact.setText(String.valueOf(rs.getInt(1)));
                   catch ( SQLException sqlex ) {
                   msgout.append( sqlex.toString() );
              else {
                   msgout.append( "\nInsertion NON r�ussie\n" );
                   screenvarcli.INSociete.setText( "" );
              else
              msgout.append( "\nEntrer au moins le non de soci�t� puis press NOUVEAU\n" );
              statement.close();
              catch ( SQLException sqlex ) {
              msgout.append( sqlex.toString() );
              screenvarcli.INSociete.setText("Nom de soci�t� existe d�j� -- reenter");
    // STRUCTURE
    //class StructRecCli extends JFrame implements ActionListener {
    class StructRecCli implements ActionListener {
         private DataPanelCli screenvarcli;
         private JTextArea msgout;
         private Connection dbconn;
         private boolean firsttime = true;
         public StructRecCli( Connection dbc, DataPanelCli scv, JTextArea msg ) {
              super( " APPLICATION CLIENT STUCTURE " );
              dbconn = dbc;
              screenvarcli = scv;
              msgout = msg;
         public void actionPerformed( ActionEvent e) {
              if (firsttime) {
                   Container cnt = getContentPane();
                   cnt.setLayout( new FlowLayout() );
                   StruCliBox ob = new StruCliBox();
                   cnt.add( ob );
         screenvarcli.INSociete.getText();
                   ButtonPanelStr controls = new
                   ButtonPanelStr(dbconn, screenvarcli, msgout);
                   cnt.add(controls);
                   setSize(500, 475);
                   firsttime = false;
              show();
    class StruCliBox extends JPanel {
         JTextField ICCliFact, INSociete,
              ILAdresseA, ICPostal, ILLocalite, ICPays;
         JLabel LCCliFact, LNSociete,
              LLAdresseA, LCPostal, LLLocalite, LCPays;
         public StruCliBox() {
              //Label Panel
              JPanel s = new JPanel();
              s.setLayout( new GridLayout(6, 1));
              LNSociete = new JLabel( "Nom ", 0);
              s.add(LNSociete);
              LCCliFact = new JLabel( "Num�ro Client", 0);
              s.add(LCCliFact);
              LLAdresseA = new JLabel( "Adresse ", 0);
              s.add(LLAdresseA);
              LCPostal = new JLabel( "Code Postal ", 0);
              s.add(LCPostal);
              LLLocalite = new JLabel( "Localite ", 0);
              s.add(LLLocalite);
              LCPays = new JLabel( "Pays ", 0);
              s.add(LCPays);
              //TextField Panel
              JPanel screenvarcliPanel = new JPanel();
              screenvarcliPanel.setLayout( new GridLayout(6, 1));
              INSociete = new JTextField( 20);
              screenvarcliPanel.add(INSociete);
    //          String rechnom = new String();
    //          screenvarcli.INSociete.getText();
              ICCliFact = new JTextField( 20);
              screenvarcliPanel.add(ICCliFact);
              ILAdresseA = new JTextField( 20);
              screenvarcliPanel.add(ILAdresseA);
              ICPostal = new JTextField( 20);
              screenvarcliPanel.add(ICPostal);
              ILLocalite = new JTextField( 20);
              screenvarcliPanel.add(ILLocalite);
              ICPays = new JTextField( 20);
              screenvarcliPanel.add(ICPays);
              // Accessibility Section - relate labels and text fields
              // for use by assistive technologies
    //          LNSociete.setLabelFor( INSociete);
              LLAdresseA.setLabelFor( ILAdresseA);
              LCPostal.setLabelFor( ICPostal);
              LLLocalite.setLabelFor( ILLocalite);
              LCPays.setLabelFor( ICPays);
              setLayout( new GridLayout( 1, 2));
              add( s);
              add( screenvarcliPanel);
    //          setLayout(new FlowLayout() );
    //          add(s);     
    class ButtonPanelStr extends JPanel {
         public ButtonPanelStr( Connection dbc, DataPanelCli scv, JTextArea msg ) {
              setLayout( new GridLayout( 1 ,0 ));
              JButton addstr = new JButton("Ajouter");
    //          addstr.addActionListener( new AddStructure( dbconn, screenvarcli, msgout, ob));
              add( addstr );
              JButton majstr = new JButton("Mise � jour");
    //          majstr.addActionListener( new MajStructure( dbconn, screenvarcli, msgout, ob));
              add( majstr );
              JButton clestr = new JButton("Clear");
    //          clestr.addActionListener( new CleStructure( dbconn, screenvarcli, msgout, ob));
              add( clestr );
              JButton prnstr = new JButton("Impression");
    //          prnstr.addActionListener( new PrnStructure( dbconn, screenvarcli, msgout, ob));
              add( prnstr );
         // Fermeture de l'application
    //     protected void processWindowEvent(WindowEvent e) {
    //          if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    //               System.exit(0);

    To get data from one frame to another, either create one frame with a reference to the other one so it can discover the data in it, or create a static variable in one of your classes that both frames can access

Maybe you are looking for

  • Date time in XML message

    Hi All, How do i get the message datetime in the XML message. I want to handle this is iStudio instead of the application, since it should be for populated for both the published or subscribed applications. Don't want to modify the underlying applica

  • App Catalogue does not open

    I am a Volunteer here, not employed by HP. You too can become an HP Expert! Details HERE! If my post has helped you, click the Kudos Thumbs up! If it solved your issue, Click the "Accept as Solution" button so others can benefit from the question you

  • How can I add Benefit Salary to Ad Hoc Reporting?

    Hello, Our Payroll department, who uses SAP Ad Hoc Reporting, would like to make the IT0168 Benefit Salary field available for reporting.  The infoset we use uses the logical database PNPCE, but there is no field for Benefit Reporting.  This is most

  • Full screen option

    Hi probably a simple question but how do I get my Flash video to fill a user browser when it opens, the example I am trying to replicate is the following:- http://www.goldfrapp.co.uk/ I have been trying for ages but with no joy so any help will be gr

  • ALV Report out put not down loading in XLS sheet

    Hi Guis, I am trying to down load ALV report output in XLS sheet . I am selecting  LIST ->SPREADSHEET->TABLE I am getting the fallowing message . Even though I have 18 columns . An XXL list object is exported with 8 lines and 1 columns. But no data h