"AT END OF" in Class Programming

Hi,
I want to know how to handle the following situation in ABAP within Class programming,
DATA : BEGIN OF LCL_TRAN OCCURS 0,
        TRAN TYPE STRING
      END OF LCL_TRAN.
DATA : BEGIN OF LCL_PROD OCCURS 0,
        PROD TYPE STRING,
      END OF LCL_PROD.
DESCRIBE TABLE LCL_PROD LINES I_PROD.
LOOP AT LCL_MAIN.
READ TABLE LCL_PROD WITH KEY PROD = LCL_MAIN-PROD.
IF SY-SUBRC = 0.
I_MAIN = I_MAIN + 1.
ENDIF.
AT END OF TRAN.
IF I_MAIN = I_PROD.
// I will do the necessary action here
ENDIF.
ENDAT.
ENDLOOP.
At end of each transaction(Tran) which is a item level data i want to do some action. I need AT END OF statement to handle this situation.
How to handle this situation in CLASS (SE24)?
Thank you
Arun Prasad

Hi arun,
classes basically we define for the purpose of <b>Encapsulation</b> principle of object oriented programming.
So as BSP supports strongly Object Oriented Concept, so whatever logic we are implementing we will try to implement in class only.
i have little doubt about what u asked, but still what i understand is that u like to know how to call the methods of a class from the BSP page, if this is the case, then ok, otherwise please let me know in detail.
now i am assumming that i understand ur problem properly, so this is the solution according to that,
suppose u created the class to search the name of sdn developers, lets class named as <b>zcl_sdn_search</b>.
now u like to serach name of developers, for that their is a method in class named as <b>search_developer</b>.
and we also have method to display Business card of that Devloper, named as <b>get_dev_data</b>.
so here is the code which u have to write in onInitialization Event Handler.
data: dev_tab TYPE dev_tab.
CALL METHOD zcl_sdn_search=>search_developer
    EXPORTING
        developer = developer
        forum = forum
        keyword = keyword
    IMPORTING dev_tab = dev_tab
    EXCEPTIONS
        no_search_parameter = 2
        invalid_forum = 4.
if sy-subrc = 4.
  navigation->goto_page( 'invalid_forum.htm' ).
elseif sy-subrc <> 0.
  navigation->goto_page( 'error.htm' ).
endif.
IF sy-subrc = 0.
  CALL METHOD zcl_sdn_search=>get_dev_data
    EXPORTING
      dev_tab = dev_tab
    IMPORTING
      card_tab = card_tab
    EXCEPTIONS
      empty_input_table = 2
      invalid_dev = 4.
ENDIF.
so in the same manner u can call any method, and method contains the business logic or u can take any action depending on situation.
so hope i helped u in some manner. if still u have something different in mind, so let me clear.
Regards,
kamaljeet

Similar Messages

  • Can't find main class - program will end

    Dear forum readers,
    Recently upgraded from Win2k pro to XP pro .. installation ran to conclusion w/ no fatal errors BUT upon booting new system I now receive an error message "Java Virtual Machine Launcher can't find main class, program will end" .. I am not aware that this error is causing any problems BUT it is annoying and I'd like to be able to fix the problem so I don't have to close the error message at each startup .. please help!
    Thanks in advance, Larry

    Try this
    java -XbootClasspath/a -jar <<Prog name>>
    I think you are trying in windows XP.
    Also you need to modify if there are any other jars to be reference. For eg if a.jar is also required for this try as below
    java -XbootClasspath/a:a.jar -jar <<Prog name>>

  • Error msg Could not find the main class.Program will exit. in jar execution

    Hello,
    I have created a jar so that I can used it in the webapp.
    but when I click on it it says "Could not find the main class.Program will exit."
    I searched a lot in the net and found that it has to do with the manifest file.
    I even updated the manifest file using the command "jar umf main.txt filefolderupload.jar" with the class name mention along with the package heirarchy.
    (pakage heirarchy in /,\ and .)
    I am using JDK 1.5 . and have Updated JRE 1.6.
    Also tried with extending the class with JApplet, but in vain.
    Kindly help me in the above mention issue.
    tia,
    Sarwa

    This post hints at a number of misunderstandings on your part, and raises a couple of important questions.
    Note that this 'simple question' has a complicated answer. Given the complexity of it, it might pay to add Dukes to it, ..a lot of Dukes.
    The important questions are.
    1) Does this file/directory uploader need to provide the end-user with a file dialog in which they can choose a local directory to upload, or will a multi-file chooser do?
    2) Does this uploader need to upload to foreign sites, or does it upload back to its own server?
    Looking at this table I prepared to describe the [uploader/local file access|http://pscode.org/test/uploader/fileuploader.html] possibilities, if the answers to the questions are 'multi-file chooser will do' and 'home site only', the best option is a sandboxed app. launched using webstart (JNLP) - option 5. If either of those questions go the other way, option 6 (digitally signed with extended permissions) is needed.

  • Execute jar file: "could not find the main class" program will terminate

    Hey,
    I am new to Java. I have started to make a small java program which supposed to help me at my studies to lean the Dominic Memory System. I have used the latest version of Netbeans 5.5.1 to build my program in. I have two problems which I cannot figure out how to solve, please help me.
    The first problem is that the java script I have made works when I compile it in Netbeans, but when I create a Jar file it does not work. I receive a pop up message in windows ?could not find the main class program will terminate? when I execute the jar file.
    The second problem I have is that I need to compare the strings generated by the "numbers" and "TIP" and if the numbers is not identical the numbers in the ?Center? JPanel should be highlighted as red.
    If anyone would like to clean up the code I would be pleased. I have copied quite a lot from anyone because of my one lack of knowledge.
    * GoListener.java
    * Created on 12. september 2007, 21:48
    * To change this template, choose Tools | Template Manager
    * and open the template in the editor.
    package grandmaster;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.Vector;
    import java.util.StringTokenizer;
    import java.awt.Color;
    * @author Computer
    public class GoListener implements ActionListener {
    private JTextField viewer;
    private JTextField TIP;
    private JTextField freq;
    private JTextField max_num;
    private Vector numbers;
    public GoListener(JTextField j,JTextField k, JTextField m, JTextField f, Vector n) {
    freq = f;
    max_num = m;
    viewer = j;
    numbers = n;
    TIP = k;
    public void actionPerformed(ActionEvent e){
    int time = Integer.valueOf(max_num.getText());
    int f = Integer.valueOf(freq.getText());
    if (e.getActionCommand() == "GO") {
    for (int i = 0; i< time;++i) {
    int number=0;
    number = (int)Math.floor(100*Math.random());
    while(number>51){
    number = (int)Math.floor(100*Math.random());
    if(number<=9){
    viewer.setText(" "+"0" + String.valueOf(number) + " ");
    } else{
    viewer.setText(" " + String.valueOf(number) + " ");
    viewer.paintImmediately(viewer.getBounds());
    numbers.add(number);
    try {
    Thread.sleep(f*1000);
    } catch (Exception exp) {
    viewer.setText(" XX ");
    viewer.paintImmediately(viewer.getBounds());
    if (e.getActionCommand() == "VIEW") {
    try {
    //int numb = Integer.valueOf( TIP.getText() ).intValue();
    StringTokenizer tokenizer = new StringTokenizer(TIP.getText(), " ");
    String[] split = null;
    int tokenCount = tokenizer.countTokens();
    if (tokenCount > 0) {
    split = new String[tokenCount];
    for (int current = 0; current < tokenCount; current++) {
    split[current] = tokenizer.nextToken();
    viewer.setText(" " + String.valueOf(numbers) + " ");
    // k=numbers(1);
    /*while(c<i){
    String.valueOf(k).equals(split[1]);
    c++;
    TIP.setText(" " + split[2] + " ");
    } catch (Exception exp) {
    try {
    //string testit = numb.toString();
    //String str = "" + numb;
    //viewer.setText(str);
    //viewer.setText(numbers.toString());
    numbers.clear();
    } catch (Exception exp) {
    * Main.java
    * Created on 12. september 2007, 21:07
    * To change this template, choose Tools | Template Manager
    * and open the template in the editor.
    package grandmaster;
    import java.util.Vector;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.JButton;
    import java.awt.*;
    import grandmaster.GoListener;
    * @author Computer
    public class Main extends JFrame {
    private JTextField viewer;
    public JTextField TIP;
    // private TextInputPanel TIP;
    private Vector numbers;
    /** Creates a new instance of Main */
    public Main() {
    numbers = new Vector();
    JPanel p = new JPanel(new GridLayout(0,4));
    JButton go = new JButton();
    JButton view_num = new JButton();
    go.setText("Go!");
    go.setVisible(true);
    go.setActionCommand("GO");
    view_num.setText("VIEW");
    view_num.setVisible(true);
    view_num.setActionCommand("VIEW");
    JTextField max_num = new JTextField();
    max_num.setText("5");
    JTextField freq = new JTextField();
    freq.setText("1");
    viewer = new JTextField();
    viewer.setText("XX");
    TIP = new JTextField("");
    p.add(go);
    p.add(max_num);
    p.add(freq);
    p.add(view_num);
    getContentPane().add(p,BorderLayout.NORTH);
    getContentPane().add(viewer,BorderLayout.CENTER);
    getContentPane().add(TIP,BorderLayout.SOUTH);
    setSize(200,200);
    GoListener g = new GoListener(viewer,TIP,max_num, freq, numbers);
    go.addActionListener(g);
    view_num.addActionListener(g);
    * @param args the command line arguments
    public static void main(String[] args) {
    // TODO code application logic here
    Main window = new Main();
    window.setVisible(true);
    }

    NetBeans questions should be posted to the NB site. It has mailing lists and associated forums.
    This tutorial from the NB site addresses running programs outside of NB
    http://www.netbeans.org/kb/articles/javase-deploy.html
    When you compare objects, use ".equals()" and reserve == for comparing values.

  • Could not find main class program will exit error while installing Oracle Client 32 bit on windows 7 32 bit OS?

    Hi Experts,
    When I am installing Oracle client 32 bit software on Windows 7 32 bit I am getting error as "could not find main class program will exit"
    I have tried installing latest Java software 7 also JDK 1.6.0_34 still I am getting the same problem below is my " oraparam.ini " details
    [Oracle]
    DISTRIBUTION=TRUE
    SOURCE=../stage/products.xml
    LICENSE_LOCATION=
    BOOTSTRAP_COMPS="oracle.swd.oui:11.1.0.6.0,oracle.swd.oui.core:11.1.0.6.0,oracle.jdk:1.5.0.1.1"
    JRE_SCRATCH_LOC=jdk/jre
    JRE_MEMORY_OPTIONS=" -mx96m"
    DEFAULT_HOME_LOCATION=product\11.1.0\client
    DEFAULT_HOME_NAME=OraClient11g_home
    NO_BROWSE=/net
    NLS_ENABLED=TRUE
    BOOTSTRAP=TRUE
    EXT_JLIB=../stage/ext/jlib
    OUI_VERSION=11.1.0.6.0
    ## JRE_VERSION is only for Windows. This is to copy accessbridge dlls
    JRE_VERSION=1.4.2
    ACCESS_DIR=../install/access
    #SHOW_HOSTNAME=ALWAYS_SHOW shows the hostname panel always
    #SHOW_HOSTNAME=NEVER_SHOW does not the hostname panel
    #SHOW_HOSTNAME=CONDITION_SHOW shows the hostname panel on condition
    SHOW_HOSTNAME=NEVER_SHOW
    #THIN_JDBC_FILENAME is optional and defaults to classes12.jar
    #The value specified for this should be packaged with OUI, and should
    #be relative to <OUI expanded stagedir>/jlib/
    THIN_JDBC_FILENAME=classes12.jar
    #RUN_OUICA specifies the batch script name that needs to be run
    #The script is ouica.bat for win32, and ouica.sh for solaris.
    #If the value is not specified, then the OUICA script is not run
    RUN_OUICA=ouica.bat
    CLUSTERWARE={"oracle.crs","10.1.0.2.0"}
    SILENT_VARIABLE_VALIDATION=TRUE
    [Generic Prereqs]
    MIN_DISPLAY_COLORS=256
    [IMAGES]
    FILE1=images/billboards.gif
    LICENSE_LOCATION=license.txt

    Duplicates of the other two times you asked this question:
    https://forums.oracle.com/thread/2559093
    https://forums.oracle.com/thread/2558027
    (and this time, your question does not appear to have anything to do with this particular forum space, either)
    Duplicate is locked.
    Do not EVER multi--post.   That is extremely bad forum etiquette.

  • Error:-could not find the main class programe will exit(Java virtual mach)

    Hi,
    i changed the mainfest file for an executive jar file(judge.jar) using the command on dos :-"jar cvfm judge.jar c:\judge\MAINFEST.MF -C judge/ ." , but when i run this jar file again after making changes in mainfest file it is not working. an error encounter like "could not find the main class programe will exit how to solve"(Java virtual machine launcher).please suggest me how to solve this error.
    Thanks
    Ashwani Gupta

    Hi,
    mainfest file has a entry like "main -class: judge.repository.corpus"
    please tell me the solution of this error i am doing internship in national university of singapore......and my project is related to data mining.I am using judge.jar when i extract this jar files i saw there was no main-class in manifest file so i change it and make it again jar file using dos command.please suggest me how i can reomove this error.
    Thanks in advance.
    Ashwani

  • At installation iTunes there is an error. An error of package Windows Installer. It is impossible to start necessary for end of installation the program. Address to technicians or to the supplier of a package. What to do?

    At installation iTunes there is an error. An error of package Windows Installer. It is impossible to start necessary for end of installation the program. Address to technicians or to the supplier of a package. What to do?

    Repair your Apple Software Update:
    Go to START/ALL PROGRAMS/Apple Software Update. If it offers you a newer version of Apple Software Update, do it but Deselect any other software offered at the same time. Once done, try another iTunes install

  • Jar file error: could not find main class. program will exit

    I have created a jar file using following command
    jar cfm MyProj.jar Manifest.txt richa\*.class
    and I have included main class header in the Manifest.txt. The executable jar file is created but when I double click on it, it prompts an error Could not find the main class. program will exit.
    Please help. Its urgent..
    Thanks in advance

    This simply state that jvm was unable to fine Main Class file.
    I hope you have configured manifest file including your main file information and class path used by the project with proper package hierarchy,
    as described in article
    [https://java.sun.com/docs/books/tutorial/deployment/jar|https://java.sun.com/docs/books/tutorial/deployment/jar]
    Edited by: Deepesh on Jul 13, 2008 4:58 AM

  • Java Virtual Machine Launcher could not find the main class - program will

    I have installed J2SE and followed all the instructions but upon restarting the PC I get a dialogue box with the messege Java Virtual Machine Launcher could not find the main class - program will exit.
    I have tried multiple times un-installing and re-intalling this but i still get the messege when i restart windows.
    Can anyone offer any suggestions as to what i may be doing wrong.
    When I do the verify installation I get the congtratulations you have the latest Java Installed.
    Help

    Something is being automatically started when the pc starts. Assuming Windows, to see what it is, learn to use the msconfig program:
    http://www.google.com/search?q=how+to+use+msconfig
    Apparently, whatever it is, it's not correctly configured.

  • Problem with message: Could not find the main class Program will exit

    I don't get why this isn't working. Any help is appreciated.
    //Code start
    public class hello{
    public hello(){
    public static void main( String args[] ){
    System.out.println("Hello");
    //Code end
    I compile it as so:
    javac hello.javaIt compiles fine and I now have hello.class in my current directory, but when I type the following:
    java helloI get this:
    Exception in thread "main" java.lang.NoClassDefFoundError: hello
    Caused by: java.lang.ClassNotFoundException: hello
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Could not find the main class: hello. Program will exit.

    mring001 wrote:
    That worked. Thank you very much!Good. You should read [_Setting the class path_|http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html] that tells you more about what the classpath is and how to set it.

  • Fraction class program

    Good morning all,
    I'm having some issues getting my fraction class to work properly. Both the driver and class compile just fine and the driver runs, but it isn't producing the correct addition and multiplication answers. I put the class and the driver code below. Please help me out. Thank you very much.
    import java.util.Scanner;
    public class Fraction
    private int numerator;
    private int denominator;
    public Fraction()
              this(0, 1);
    public Fraction(int numerator, int denominator)
              this.numerator = numerator;
              this.denominator = denominator;
    //this method adds fractions together
         public Fraction add(Fraction d)
              numerator = numerator * d.denominator + d.numerator * denominator;
              denominator = d.denominator * denominator;
              return d;
         //This method multiplies fractions together
         public Fraction multiply(Fraction d)
              this.numerator = numerator * d.numerator;
              this.denominator = denominator * d.denominator;
              return d;
         //This method prints in fraction notation
         public void print()
              System.out.println(numerator + "/" + denominator);
         //This method prints the fraction as a double
         public void printAsDouble()
              System.out.println((double) numerator / (double) denominator);
    DRIVER
    import java.util.Scanner;
    public class bla bla
    public static void main(String[] args)
         Scanner stdIn = new Scanner(System.in);
         Fraction c, d, x;                     // fraction objects
         System.out.println("Enter numerator; then denominator.");
         c = new Fraction(stdIn.nextInt(), stdIn.nextInt());     // receives the numerator and denom
         c.print();
         System.out.println("Enter numerator; then denominator.");
         d = new Fraction(stdIn.nextInt(), stdIn.nextInt());
         d.print();
         x = new Fraction();                     // create a fraction for number 0
         System.out.println("Sum:");          // prints sum of fractions c and d
         x.add(c).add(d);
         x.print();
         x.printAsDouble();
         x = new Fraction(1, 1);                // create a fraction for number 1
         System.out.println("Product:");     // prints product of fractions c and d
         x.multiply(c).multiply(d);
         x.print();
         x.printAsDouble();
         System.out.println("Enter numerator; then denominator.");
         x = new Fraction(stdIn.nextInt(), stdIn.nextInt());
         x.printAsDouble();
    }// end main
    }

    It is displaying properly, just not the correct information. I am not dumping my homework here. Yes it's my homework program, but I don't understand it. I'm sure anyone in this forum has taken a programming class before and went somewhere for help. I came here.
    I used the code tags now. Hopefully it displayed properly.
    import java.util.Scanner;
    public class Fraction
    private int numerator;
    private int denominator;
    public Fraction()
              this(0, 1);
    public Fraction(int numerator, int denominator)
              this.numerator = numerator;
              this.denominator = denominator;
    //this method adds fractions together
         public Fraction add(Fraction d)
              numerator = numerator * d.denominator + d.numerator * denominator;
              denominator = d.denominator * denominator;
              return d;
         //This method multiplies fractions together
         public Fraction multiply(Fraction d)
              this.numerator = numerator * d.numerator;
              this.denominator = denominator * d.denominator;
              return d;
         //This method prints in fraction notation
         public void print()
              System.out.println(numerator + "/" + denominator);
         //This method prints the fraction as a double
         public void printAsDouble()
              System.out.println((double) numerator / (double) denominator);
    import java.util.Scanner;
    public class bla bla
    public static void main(String[] args)
         Scanner stdIn = new Scanner(System.in);
         Fraction c, d, x;                     // fraction objects
         System.out.println("Enter numerator; then denominator.");
         c = new Fraction(stdIn.nextInt(), stdIn.nextInt());     // receives the numerator and denom
         c.print();
         System.out.println("Enter numerator; then denominator.");
         d = new Fraction(stdIn.nextInt(), stdIn.nextInt());
         d.print();
         x = new Fraction();                     // create a fraction for number 0
         System.out.println("Sum:");          // prints sum of fractions c and d
         x.add(c).add(d);
         x.print();
         x.printAsDouble();
         x = new Fraction(1, 1);                // create a fraction for number 1
         System.out.println("Product:");     // prints product of fractions c and d
         x.multiply(c).multiply(d);
         x.print();
         x.printAsDouble();
         System.out.println("Enter numerator; then denominator.");
         x = new Fraction(stdIn.nextInt(), stdIn.nextInt());
         x.printAsDouble();
    }// end main
    }

  • The dreaded "could not find the Main Class, Program will exit", how?

    Hello all,
    I am trying to run my .jar file and I get this error message.
    I want to mention I googled and searched for it, without success: There is so many different explanations!
    I tried this:
    Adding some lines in a manifest.fm file...
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.0
    Created-By: 10.0-b19 (Sun Microsystems Inc.)
    X-COMMENT: Main-Class will be added automatically by build
    I have Netbeans 5.5.
    Also I noticed my "build.xml" file is empty" and my "manifest.fm" nearly empty. I have also added "project, main class" in the options...
    Here is my "build":
    {code}<?xml version="1.0" encoding="UTF-8"?>
    <!-- You may freely edit this file. See commented blocks below for -->
    <!-- some examples of how to customize the build. -->
    <!-- (If you delete it and reopen the project it will be recreated.) -->
    <project name="BetaCourseworkJava3d_Final" default="default" basedir=".">
    <description>Builds, tests, and runs the project BetaCourseworkJava3d_Final.</description>
    <import file="nbproject/build-impl.xml"/>
    <!--
    There exist several targets which are by default empty and which can be
    used for execution of your tasks. These targets are usually executed
    before and after some main targets. They are:
    -pre-init: called before initialization of project properties
    -post-init: called after initialization of project properties
    -pre-compile: called before javac compilation
    -post-compile: called after javac compilation
    -pre-compile-single: called before javac compilation of single file
    -post-compile-single: called after javac compilation of single file
    -pre-compile-test: called before javac compilation of JUnit tests
    -post-compile-test: called after javac compilation of JUnit tests
    -pre-compile-test-single: called before javac compilation of single JUnit test
    -post-compile-test-single: called after javac compilation of single JUunit test
    -pre-jar: called before JAR building
    -post-jar: called after JAR building
    -post-clean: called after cleaning build products
    (Targets beginning with '-' are not intended to be called on their own.)
    Example of inserting an obfuscator after compilation could look like this:
    <target name="-post-compile">
    <obfuscate>
    <fileset dir="${build.classes.dir}"/>
    </obfuscate>
    </target>
    For list of available properties check the imported
    nbproject/build-impl.xml file.
    Another way to customize the build is by overriding existing main targets.
    The targets of interest are:
    -init-macrodef-javac: defines macro for javac compilation
    -init-macrodef-junit: defines macro for junit execution
    -init-macrodef-debug: defines macro for class debugging
    -init-macrodef-java: defines macro for class execution
    -do-jar-with-manifest: JAR building (if you are using a manifest)
    -do-jar-without-manifest: JAR building (if you are not using a manifest)
    run: execution of project
    -javadoc-build: Javadoc generation
    test-report: JUnit report generation
    An example of overriding the target for project execution could look like this:
    <target name="run" depends="BetaCourseworkJava3d_TestsBACKUPSUNDAY05April-impl.jar">
    <exec dir="bin" executable="launcher.exe">
    <arg file="${dist.jar}"/>
    </exec>
    </target>
    Notice that the overridden target depends on the jar target and not only on
    the compile target as the regular run target does. Again, for a list of available
    properties which you can use, check the target you are overriding in the
    nbproject/build-impl.xml file.
    -->
    </project>
    {code}
    my Manifest:
    {code}Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.0
    Created-By: 10.0-b19 (Sun Microsystems Inc.)
    X-COMMENT: Main-Class will be added automatically by build
    {code}
    And my whole code (although I have like 4 .JAVA files in my project):
    {code}
    package courseworkjava3d;
    import java.awt.*;
    import java.awt.event.*;
    import com.sun.j3d.utils.geometry.*;
    import com.sun.j3d.utils.universe.*;
    import javax.swing.*;
    import javax.media.j3d.*;
    import javax.vecmath.*;
    import javax.media.j3d.PositionPathInterpolator;
    import javax.media.j3d.Alpha;
    import javax.media.j3d.BoundingSphere;
    import com.sun.j3d.utils.applet.MainFrame;
    import java.applet.Applet;
    import java.awt.event.WindowAdapter;
    import javax.swing.Timer;
    import com.sun.j3d.utils.image.*;
    public class Simple3D extends JFrame implements ActionListener, KeyListener
    private TransformGroup objTransxx;
    private Button go = new Button("Press to start the Bouncing Ball. Press A and S to move the ball Left and Right once it started!");
    private Transform3D transxx = new Transform3D();
    private float height=0.0f;
    private float sign = 1.0f; // aller vers le haut ou vers le bas
    private Timer timer;
    private float xloc=-2.25f;
    public Simple3D()
    setSize(800, 800);
    GraphicsConfiguration graphicsConfig = SimpleUniverse.getPreferredConfiguration();
    Canvas3D canvas = new Canvas3D(graphicsConfig);
    getContentPane().add("Center", canvas);
    BasicUniverse universe = new BasicUniverse(canvas, 8.0f);
    // Rotate the view platform by PI/4 radians about X in the BasicUniverse
    TransformGroup viewTransform = universe.getViewPlatformTransform();
    Transform3D transform = new Transform3D();
    transform.rotX(-Math.PI / 4.0);
    Transform3D currentTransform = new Transform3D();
    viewTransform.getTransform(currentTransform);
    transform.mul(currentTransform);
    viewTransform.setTransform(transform);
    // Add something to display
    BranchGroup scene = createCubeGraph();
    universe.addBranchGraph(scene);
    /* //ultra important! comment theses lines otherwise it bugs!
    //Merde
    setLayout(new BorderLayout());
    GraphicsConfiguration config =
    SimpleUniverse.getPreferredConfiguration();
    Canvas3D c = new Canvas3D(config); */
    add("Center", canvas);
    //i messed up te code, i replaced canvas c by "canvas" as i already had one!
    canvas.addKeyListener(this);
    timer = new Timer(75,this);
    //timer.start();
    Panel p =new Panel();
    p.add(go);
    add("North",p);
    go.addActionListener(this);
    go.addKeyListener(this);
    // Cr�er une sc�ne simple et l�ajouetr � l�univers
    //BranchGroup scene2 = createCubeGraph();
    //SimpleUniverse u = new SimpleUniverse(c);
    //u.getViewingPlatform().setNominalViewingTransform();
    //u.addBranchGraph(scene2);
    //End Merde
    public BranchGroup createCubeGraph() {
    BranchGroup Humanoid = new BranchGroup();
    //Debut Ball REBOUND
    // Create the root of the branch graph
    //BranchGroup objRoot = new BranchGroup();
    objTransxx = new TransformGroup();
    objTransxx.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    Humanoid.addChild(objTransxx);
    // Cr�er une forme simple et l�ajouter au graph de sc�ne
    Sphere spherex = new Sphere(0.85f);
    objTransxx = new TransformGroup();
    objTransxx.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    Transform3D pos1 = new Transform3D();
    pos1.setTranslation(new Vector3f(-2.0f,0.0f,-2.0f));
    objTransxx.setTransform(pos1);
    objTransxx.addChild(spherex);
    Humanoid.addChild(objTransxx);
    BoundingSphere boundsx =
    new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
    // I messed up the colors: I have applied 2 times some colorslights to the same BranchGroup
    Color3f light1Colorx = new Color3f(1.0f, 1.0f, 1.0f);
    Vector3f light1Directionx = new Vector3f(4.0f, -7.0f, -12.0f);
    DirectionalLight light1x
    = new DirectionalLight(light1Colorx, light1Directionx);
    light1x.setInfluencingBounds(boundsx);
    Humanoid.addChild(light1x);
    // R�gler la lumi�re ambiante
    Color3f ambientColorx = new Color3f(1.0f, 1.0f, 1.0f);
    AmbientLight ambientLightNodex = new AmbientLight(ambientColorx);
    ambientLightNodex.setInfluencingBounds(boundsx);
    Humanoid.addChild(ambientLightNodex);
    // END BallRebound
    // Apparence BODY
    // Configurer les couleurs
    Color3f blackbody = new Color3f(0.0f, 0.0f, 0.0f);
    Color3f whitebody = new Color3f(1.0f, 1.0f, 1.0f);
    Color3f redbody = new Color3f(0.8f, .85f, .85f);
    // Configurer la texture
    //if I want it in Black and white i need to replace RGB by LUMINANCE
    TextureLoader loaderbody = new TextureLoader("C:\\java3d\\body.jpg", "RGB", new Container());
    Texture texturebody = loaderbody.getTexture();
    texturebody.setBoundaryModeS(Texture.WRAP);
    texturebody.setBoundaryModeT(Texture.WRAP);
    texturebody.setBoundaryColor( new Color4f( 1.0f, 1.0f, 0.0f, 0.0f ) );
    // Configurer les attributs de la texture
    // Param�tres possibles : REPLACE, BLEND ou DECAL (ici, MODULATE)
    TextureAttributes texAttrbody = new TextureAttributes();
    texAttrbody.setTextureMode(TextureAttributes.MODULATE);
    Appearance apbody = new Appearance();
    apbody.setTexture(texturebody);
    apbody.setTextureAttributes(texAttrbody);
    //Configurer le mat�riau
    apbody.setMaterial(new Material(redbody, blackbody, redbody, blackbody, 1.0f));
    // Cr�er une sph�re pour y appliquer les textures
    int primflagsbody = Primitive.GENERATE_NORMALS + Primitive.GENERATE_TEXTURE_COORDS;
    // End Apparence BODY
    // Apparence BODYHEAD
    // Configurer les couleurs
    Color3f blackbodyH = new Color3f(0.0f, 0.0f, 0.0f);
    Color3f whitebodyH = new Color3f(1.0f, 1.0f, 1.0f);
    Color3f redbodyH = new Color3f(0.8f, .85f, .85f);
    // Configurer la texture
    //if I want it in Black and white i need to replace RGB by LUMINANCE
    TextureLoader loaderbodyH = new TextureLoader("C:\\java3d\\head.jpg", "RGB", new Container());
    Texture texturebodyH = loaderbodyH.getTexture();
    texturebodyH.setBoundaryModeS(Texture.WRAP);
    texturebodyH.setBoundaryModeT(Texture.WRAP);
    texturebodyH.setBoundaryColor( new Color4f( 1.0f, 1.0f, 0.0f, 0.0f ) );
    // Configurer les attributs de la texture
    // Param�tres possibles : REPLACE, BLEND ou DECAL (ici, MODULATE)
    TextureAttributes texAttrbodyH = new TextureAttributes();
    texAttrbodyH.setTextureMode(TextureAttributes.MODULATE);
    Appearance apbodyH = new Appearance();
    apbodyH.setTexture(texturebodyH);
    apbodyH.setTextureAttributes(texAttrbodyH);
    //Configurer le mat�riau
    apbodyH.setMaterial(new Material(redbodyH, blackbodyH, redbodyH, blackbodyH, 1.0f));
    // Cr�er une sph�re pour y appliquer les textures
    int primflagsbodyH = Primitive.GENERATE_NORMALS + Primitive.GENERATE_TEXTURE_COORDS;
    // End Apparence BODY HEAD
    //for the trunk c le corps
    TransformGroup fortheTrunk = new TransformGroup();
    //will allow to modify object wgile executing
    fortheTrunk.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    //alpha rotation time related
    Alpha rotationAlpha2=new Alpha(-1,9000);
    //behviour for our rotation
    RotationInterpolator rotator2= new RotationInterpolator(rotationAlpha2,fortheTrunk);
    // area where rotation will be
    BoundingSphere bounds2=new BoundingSphere();
    rotator2.setSchedulingBounds(bounds2);
    fortheTrunk.addChild(rotator2);
    //end of rtotation
    Alpha transAlphahuman=new Alpha(-1,600);
    //transform 3d trans for the interpolatipon HUMANOID
    Transform3D transhumanoid=new Transform3D();
    //matrix for 2positions
    Point3f[] cheminhuman=new Point3f[3];
    cheminhuman[0]=new Point3f(0.8f,0.0f,0.0f);
    cheminhuman[1]=new Point3f(-0.8f,0.0f,0.0f);
    cheminhuman[2]=new Point3f(0.8f,0.0f,0.0f);
    //matrix of floats to make the dots match with timeline
    float[] timePositionhuman={0.0f,0.50f,1.0f};
    PositionPathInterpolator interpolhuman=new PositionPathInterpolator(transAlphahuman,fortheTrunk,transhumanoid,timePositionhuman,cheminhuman);
    BoundingSphere bounds4=new BoundingSphere();
    interpolhuman.setSchedulingBounds(bounds4);
    fortheTrunk.addChild(interpolhuman);
    //add the trunk to the branchgroup
    Humanoid.addChild(fortheTrunk);
    TransformGroup zeTrunk = new TransformGroup();
    zeTrunk.addChild(new com.sun.j3d.utils.geometry.Box(.55f,.80f,.50f,
    primflagsbody,apbody));
    //t3D for the head= bouge up
    Transform3D T3DHead = new Transform3D();
    T3DHead.set(new Vector3f(0f,1.1f,0f));
    //create a tranform group for this t3Dhead
    TransformGroup fortheHead = new TransformGroup();
    fortheHead.setTransform(T3DHead);
    //add the box head
    //fortheHead.addChild(new com.sun.j3d.utils.geometry.Box(.20f,.20f,.10f, primflagsbody,apbody));
    fortheHead.addChild(new com.sun.j3d.utils.geometry.Sphere(0.35f,primflagsbodyH,apbodyH));
    /* I dont need that anymore it was for putting a flat texture on a face. I chose a sphere instead!
    //transform 3D for the face
    Transform3D T3DFace = new Transform3D();
    T3DFace.set(new Vector3f(0f,0f,.14f));
    //create a TransformGroup for this Face
    TransformGroup Face = new TransformGroup();
    Face.setTransform(T3DFace);
    //add the child box to the face;
    Face.addChild(new com.sun.j3d.utils.geometry.Box(.20f,.20f,.2f,
    primflagsbodyH,apbodyH));
    //add this face to the head as a child
    fortheHead.addChild(Face);
    //tranform3d left arm
    Transform3D T3DArmL = new Transform3D();
    T3DArmL.set(new Vector3f(-0.79f,0.73f,0f));
    //create Tranform Group for the leftarm
    TransformGroup fortheArmL = new TransformGroup();
    fortheArmL.setTransform(T3DArmL);
    //add the group for upperarm
    TransformGroup ArmL = new TransformGroup();
    ArmL.addChild(new com.sun.j3d.utils.geometry.Box(.25f,.14f,.10f,
    primflagsbody,apbody));
    fortheArmL.addChild(ArmL);
    //create a transform3D for the forearmleft
    Transform3D T3DForearmL = new Transform3D();
    T3DForearmL.set(new Vector3f(-.51f,0f,0f));
    //create the tranformgroup for the forearmleft
    TransformGroup ForearmL = new TransformGroup();
    ForearmL.setTransform(T3DForearmL);
    //add the child box to forearm
    ForearmL.addChild(new com.sun.j3d.utils.geometry.Box(.20f,.14f,.10f,
    primflagsbody,apbody));
    ArmL.addChild(ForearmL);
    //create transform 3d for the lefthand
    Transform3D T3DHandL = new Transform3D();
    T3DHandL.set(new Vector3f(-.42f,0f,0f));
    //create the child tranform group for the box of the hand
    TransformGroup HandL= new TransformGroup();
    HandL.setTransform(T3DHandL);
    //add the child hand to the forearm
    ForearmL.addChild(HandL);
    //create the box for the handLeft
    HandL.addChild(new com.sun.j3d.utils.geometry.Box(.10f,.140f,.10f,
    primflagsbody,apbody));
    //Right Arm
    //tranform3d right arm
    Transform3D T3DArmR = new Transform3D();
    T3DArmR.set(new Vector3f(0.79f,0.73f,0f));
    //create Tranform Group for the right arm
    TransformGroup fortheArmR = new TransformGroup();
    fortheArmR.setTransform(T3DArmR);
    //add the group for upperarm right
    TransformGroup ArmR = new TransformGroup();
    ArmR.addChild(new com.sun.j3d.utils.geometry.Box(.25f,.14f,.10f, primflagsbody,apbody));
    //com.sun.j3d.utils.geometry.Box.GENERATE_NORMALS,new Appearance()));
    fortheArmR.addChild(ArmR);
    //create a transform3D for the forearmright
    Transform3D T3DForearmR = new Transform3D();
    T3DForearmR.set(new Vector3f(.51f,0f,0f));
    //create the tranformgroup for the forearmright
    TransformGroup ForearmR = new TransformGroup();
    ForearmR.setTransform(T3DForearmR);
    //add the child box to forearmright
    ForearmR.addChild(new com.sun.j3d.utils.geometry.Box(.20f,.14f,.10f, primflagsbody,apbody));
    ArmR.addChild(ForearmR);
    //create transform 3d for the righthand
    Transform3D T3DHandR = new Transform3D();
    T3DHandR.set(new Vector3f(.42f,0f,0f));
    //create the child tranform group for the box of the hand
    TransformGroup HandR= new TransformGroup();
    HandR.setTransform(T3DHandR);
    //add the child hand to the forearmright
    ForearmR.addChild(HandR);
    //create the box for the handright
    HandR.addChild(new com.sun.j3d.utils.geometry.Box(.10f,.14f,.10f, primflagsbody,apbody));
    //Left Leg
    //tranform3d left leg
    Transform3D T3DLegL = new Transform3D();
    T3DLegL.set(new Vector3f(0.43f,-1.23f,0f));
    //create Tranform Group for the leftleg
    TransformGroup fortheLegL = new TransformGroup();
    fortheLegL.setTransform(T3DLegL);
    //add the group for uppeleg
    TransformGroup LegL = new TransformGroup();
    LegL.addChild(new com.sun.j3d.utils.geometry.Box(.16f,.35f,.10f, primflagsbody,apbody));
    fortheLegL.addChild(LegL);
    //create a transform3D for the downlegleft
    Transform3D T3DDownLegL = new Transform3D();
    T3DDownLegL.set(new Vector3f(0f,-.70f,0f));
    //create the tranformgroup for the downegleft
    TransformGroup DownLegL = new TransformGroup();
    DownLegL.setTransform(T3DDownLegL);
    //add the child box to downlegm
    DownLegL.addChild(new com.sun.j3d.utils.geometry.Box(.16f,.25f,.10f, primflagsbody,apbody));
    LegL.addChild(DownLegL);
    //create transform 3d for the leftfeet
    Transform3D T3DFeetL = new Transform3D();
    T3DFeetL.set(new Vector3f(.0f,-.45f,0f));
    //create the child tranform group for the box of thefeet
    TransformGroup FeetL= new TransformGroup();
    FeetL.setTransform(T3DFeetL);
    //add the child hand to the downleg
    DownLegL.addChild(FeetL);
    //create the box for the feetLeft
    FeetL.addChild(new com.sun.j3d.utils.geometry.Box(.16f,.10f,.15f, primflagsbody,apbody));
    //Right Leg
    //tranform3dright leg
    Transform3D T3DLegR = new Transform3D();
    T3DLegR.set(new Vector3f(-0.43f,-1.23f,0f));
    //create Tranform Group for the righttleg
    TransformGroup fortheLegR = new TransformGroup();
    fortheLegR.setTransform(T3DLegR);
    //add the group for uppelegR
    TransformGroup LegR = new TransformGroup();
    LegR.addChild(new com.sun.j3d.utils.geometry.Box(.16f,.35f,.10f, primflagsbody,apbody));
    fortheLegR.addChild(LegR);
    //create a transform3D for the downlegright
    Transform3D T3DDownLegR = new Transform3D();
    T3DDownLegR.set(new Vector3f(0f,-.70f,0f));
    //create the tranformgroup for the downegright
    TransformGroup DownLegR = new TransformGroup();
    DownLegR.setTransform(T3DDownLegR);
    //add the child box to downlegRight
    DownLegR.addChild(new com.sun.j3d.utils.geometry.Box(.16f,.25f,.10f, primflagsbody,apbody));
    LegR.addChild(DownLegR);
    //create transform 3d for the rightfeet
    Transform3D T3DFeetR = new Transform3D();
    T3DFeetR.set(new Vector3f(.0f,-.45f,0f));
    //create the child tranform group for the box of thefeetright
    TransformGroup FeetR= new TransformGroup();
    FeetR.setTransform(T3DFeetR);
    //add the child feet right to the downleg
    DownLegR.addChild(FeetR);
    //create the box for the feetright
    FeetR.addChild(new com.sun.j3d.utils.geometry.Box(.16f,.10f,.15f, primflagsbody,apbody));
    //rajoute la box zetrunk et des fils
    fortheTrunk.addChild(zeTrunk);
    fortheTrunk.addChild(fortheHead);
    fortheTrunk.addChild(fortheArmL);
    fortheTrunk.addChild(fortheArmR);
    fortheTrunk.addChild(fortheLegL);
    fortheTrunk.addChild(fortheLegR);
    //DEBUT CUBE
    //beginning of rotation
    TransformGroup objSpin=new TransformGroup();
    //create transform 3d for box which spin
    Transform3D T3DobjSpin = new Transform3D();
    T3DobjSpin.set(new Vector3f(-2.50f,.45f,0f));
    //create the child tranform group for the box which spin
    objSpin.setTransform(T3DobjSpin);
    //will allow to modify object while executing
    objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    //alpha rotation time related
    Alpha rotationAlpha=new Alpha(-1,900);
    Alpha transAlpha=new Alpha(-1,900);
    //transform 3d trans for the interpolatipon
    Transform3D trans=new Transform3D();
    //matrix for 2positions
    Point3f[] chemin=new Point3f[3];
    chemin[0]=new Point3f(-2.8f,0.40f,1.0f);
    chemin[1]=new Point3f(-0.8f,0.40f,1.0f);
    chemin[2]=new Point3f(-2.8f,0.40f,1.0f);
    //matrix of floats to make the dots match with timeline
    float[] timePosition={0.0f,0.50f,1.0f};
    PositionPathInterpolator interpol=new PositionPathInterpolator(transAlpha,objSpin,trans,timePosition,chemin);
    BoundingSphere bounds3=new BoundingSphere();
    interpol.setSchedulingBounds(bounds3);
    objSpin.addChild(interpol);
    //behviour for our rotation
    RotationInterpolator rotator= new RotationInterpolator(rotationAlpha,objSpin);
    // area where rotation will be
    BoundingSphere bounds=new BoundingSphere();
    rotator.setSchedulingBounds(bounds);
    objSpin.addChild(rotator);
    //end of rtotation
    //add transform group objspin to branchgroup humanoid
    Humanoid.addChild(objSpin);
    //test a cube which heritate of this rotation?
    objSpin.addChild(new ColorCube(0.25));
    //test
    //module cube + transparency
    // create an ALPHA transparency apparence (invisible)
    Appearance app0x=new Appearance();
    app0x.setColoringAttributes(new ColoringAttributes(new Color3f(0.3f,0.2f,1.0f),ColoringAttributes.SHADE_GOURAUD));
    app0x.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.NICEST,0.5f));//0.5f represente 50% de transparence
    // create the blue sphere which rotate
    Transform3D transsphere=new Transform3D();
    transsphere.set(new Vector3f(0.0f, -0.1f, 0.3f));
    TransformGroup TGsphere=new TransformGroup(transsphere);
    TGsphere.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    objSpin.addChild(TGsphere);
    //objRotatecube.addChild(TGsphere);
    TGsphere.addChild( new Sphere(0.3f,app0x) );
    //End Module Cube + Transparency
    //END CUBE
    //DEBUT WHOLE BIRD
    //beginning of Rotation for Bird
    TransformGroup Bird=new TransformGroup();
    //will allow to modify object while executing
    Bird.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    //alpha rotation time related
    Alpha rotationAlphaBird=new Alpha(-1,400);
    Alpha transAlphaBird=new Alpha(-1,5990);
    //transform 3d trans for the interpolatipon
    Transform3D transBird=new Transform3D();
    //create transform 3d for the Bird
    transBird.set(new Vector3f(1.90f,-.45f,0.9f));
    //create the child tranform group for the Bird Box
    Bird.setTransform(transBird);
    //matrix for 2positions
    Point3f[] cheminBird=new Point3f[3];
    cheminBird[0]=new Point3f(1.95f,0.0f,-6.8f);
    cheminBird[1]=new Point3f(1.95f,0.90f,-0.8f);
    cheminBird[2]=new Point3f(1.95f,0.0f,5.8f);
    //matrix of floats to make the dots match with timeline
    float[] timePositionBird={0.00f,0.50f,1.0f};
    PositionPathInterpolator interpolBird=new PositionPathInterpolator(transAlphaBird,Bird,transBird,timePosition,cheminBird);
    BoundingSphere bounds3Bird=new BoundingSphere();
    //BoundingSphere bounds3Bird= new BoundingSphere(new Point3d(0.0, 0.0, -50.0), 0.5);
    interpolBird.setSchedulingBounds(bounds3Bird);
    Bird.addChild(interpolBird);
    //behviour for our rotation
    RotationInterpolator rotatorBird= new RotationInterpolator(rotationAlphaBird,Bird);
    // area where rotation will be
    BoundingSphere boundsBird=new BoundingSphere();
    rotatorBird.setSchedulingBounds(boundsBird);
    Bird.addChild(rotatorBird);
    //end of rotation For Bird
    //add transform group objspin to branchgroup humanoid
    Humanoid.addChild(Bird);
    //debut test APPARENCE Wing Left
    //test textures
    // Configurer les couleurs
    Color3f blackx = new Color3f(0.0f, 0.0f, 0.0f);
    Color3f whitex = new Color3f(1.0f, 1.0f, 1.0f);
    Color3f redx = new Color3f(0.7f, .75f, .75f);
    // Configurer la texture
    TextureLoader loaderx = new TextureLoader("C:\\java3d\\pois.jpg", "RGB", new Container());
    Texture texturex = loaderx.getTexture();
    texturex.setBoundaryModeS(Texture.WRAP);
    texturex.setBoundaryModeT(Texture.WRAP);
    texturex.setBoundaryColor( new Color4f( 0.0f, 1.0f, 0.0f, 0.0f ) );
    // Configurer les attributs de la texture
    // Param�tres possibles : REPLACE, BLEND ou DECAL (ici, MODULATE)
    TextureAttributes texAttrx = new TextureAttributes();
    texAttrx.setTextureMode(TextureAttributes.REPLACE);
    Appearance apx = new Appearance();
    apx.setTexture(texturex);
    apx.setTextureAttributes(texAttrx);
    //Configurer le mat�riau
    apx.setMaterial(new Material(redx, blackx, redx, blackx, 1.0f));
    int primflagsx = Primitive.GENERATE_NORMALS + Primitive.GENERATE_TEXTURE_COORDS;
    //End test APPARENCE Wing Left
    //test a cube which heritate of this rotation?
    // Bird.addChild(new ColorCube(0.8));
    //test bird body
    // Bird.addChild(new com.sun.j3d.utils.geometry.Box(.25f,.22f,.45f,
    // com.sun.j3d.utils.geometry.Box.GENERATE_NORMALS,new Appearance()));
    Bird.addChild(new com.sun.j3d.utils.geometry.Box(.25f,.22f,.45f, primflagsx,apx));
    //test WingRightBird
    //create a transform3D for the BirdWIngR
    Transform3D T3DBirdWingR = new Transform3D();
    T3DBirdWingR.set(new Vector3f(0.45f,.0f,-0.35f));
    //create the tranformgroup for the BirdWIngR
    TransformGroup BirdWingR = new TransformGroup();
    BirdWingR.setTransform(T3DBirdWingR);
    //add the child box to BirdWIngR
    // BirdWingR.addChild(new com.sun.j3d.utils.geometry.Box(.43f,.07f,.22f,
    // com.sun.j3d.utils.geometry.Box.GENERATE_NORMALS,new Appearance()));
    //End test WingRightBird
    ////////comments/////////
    //beginning of Rotating WINR
    //----------------------d�but de la cr�ation de la rotation--------------------------------
    TransformGroup WinRSpin=new TransformGroup();
    // permet de modifier l'objet pendant l'execution
    WinRSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    // on cr�e un fonction de rotation au cours du temps
    Alpha rotationAlphaWinRSpin=new Alpha(-1,1000);
    Transform3D rot = new Transform3D();
    rot.rotX((float)Math.PI/- 2.0f);
    //rot.rotX(-45);
    //rot.rotX((-Math.PI / 4.0)+30);
    //rot.rotZ((-Math.PI / 4.0));
    //rot.rotX(-Math.PI / 4.0);
    //rot.rotY(-Math.PI / 4.0);
    // rot.rotZ(-Math.PI / 4.0);
    // rot.rotY(00);
    //rot.rotZ(45);
    // on cr�e un comportement qui va appliquer la rotation � l'objet voulu
    // on d�finit la zone sur laquelle va s'appliquer la rotation
    //RotationInterpolator rotatorWinRSpin=new RotationInterpolator(rotationAlphaWinRSpin,WinRSpin, rot, 0.50f,(float)(2.0*Math.PI));
    RotationInterpolator rotatorWinRSpin=new RotationInterpolator(rotationAlphaWinRSpin,WinRSpin, rot, 25,26);
    BoundingSphere boundsWinRSpin=new BoundingSphere(new Point3d((Math.PI / 4.0), 0.0, 0.0), 0.5);
    // boundsWinRSpin.setCenter(new Point3d((Math.PI / 4.0),0,0));
    boundsWinRSpin.setCenter(new Point3d(-10,0,0));
    //boundsWinRSpin.setCenter();
    //test put a t3d to a boundingsphere??
    //Transform3D T3Dbounding = new Transform3D();
    // T3Dbounding.set(new Vector3f(5.00f,0.0f,0.00f));
    //WinRSpin.setTransform(T3Dbounding);
    //end test put a t3d to a boundingsphere, not working
    rotatorWinRSpin.setSchedulingBounds(boundsWinRSpin);
    // test BoundingSphere of BODY BIRD rotatorWinRSpin.setSchedulingBounds(boundsBird);
    WinRSpin.addChild(rotatorWinRSpin);
    //----------------------End de la cr�ation de la rotation--------------------------------
    BirdWingR.addChild(WinRSpin);
    // on cree un cube qui h�rite de la rotation
    //WinRSpin.addChild(new ColorCube(0.5));// de rayon 50 cm
    WinRSpin.addChild(new com.sun.j3d.utils.geometry.Box(.43f,.07f,.22f, primflagsx,apx));
    //End of Rotating WINR
    //////// END comments/////////
    //I commented the following, that was the TEST sinusoidal, rotation which help me understood how to rotate wingR
    // -----------d�but de cr�ation de la rotation--------------------------------------------------
    TransformGroup objSpinxx=new TransformGroup();
    // permet de modifier l'objet pendant l'execution
    objSpinxx.setCapability(TransformGroup.ALL

    Thank you very much!
    I cant believe this little comment has been so helpful!
    But yes it is:
    I explain, despite my efforts to find, googled it, forums, faqs, etc...
    no where it mentionned the manifest.fm file is... INSIDE the .jar!
    Your comment "a zip" made me attempt to open it with winrar, and I found a manifest.fm file inside!
    So far I was editing the one at the "source" of my project and rebuilding it with netbeans.
    I am going to try that now.
    Actually.... :( no its mentionning my main class!
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.0
    Created-By: 10.0-b19 (Sun Microsystems Inc.)
    Main-class: courseworkjava3d.Simple3D
    Class-Path:
    X-COMMENT: Main-Class will be added automatically by buildWell I have no problems uploading you the .jar, it is for a coursework it is not a private project or whatever:
    http://www.uploading.com/files/CM2LKWYU/BetaCourseworkJava3d_Final.jar.html
    Oh and I felt on your comment "dont ask us" as if I was suppose to know... i'm a beginner, I did not know that! And I tried to give you so many infos so you dont lose your time if you want to help, especially as after my own research I found many, many results for this "main class" and I tried a few solutions!
    Edited by: CupofTea on Apr 13, 2008 3:28 AM

  • How to make .jar file for a multiple class program

    I have a code for a chat room that contains two folders , one for Server and one for Client
    What I need is to create a jar file for the server and a jar file for the clients
    but here the first problem , I have a file that named (SocketMessengerConstants.class) that is located outside the two folders and is being read by the two projects .
    I mean the server uses it while running and the client uses it too .
    the second problem is : I don't know how to create a jar file at all !
    please tell me how to do it in detail
    Thank you

    ChuckBing wrote:[Packaging Programs in JAR Files|http://java.sun.com/docs/books/tutorial/deployment/jar/index.html]
    I tried to read this tutorials before I come here but I couldn't understand it
    can you please tell me a specific steps to follow instead of the explaining .. because I understand the explanation but I can't apply it

  • Doubt in alv classes program

    plz check the following code using class. i want to display the output. i have declared an instance called pav1. im getting short dump. wht i have to give in 'i_parent = ' int his case.
    DATA:PAV1 TYPE REF TO CL_GUI_ALV_GRID.
    tables:mara.
    data:begin of itab occurs 0,
         matnr like mara-matnr,
         mtart like mara-mtart,
         matkl like mara-matkl,
    end of itab.
    PARAMETERS: s_matnr LIKE mara-matnr.
    INTIALIZATION EVENT
      initialization.
      MOVE '38' TO S_MATNR.
    *move '38' to s_matnr-low.
    *append s_matnr.
    *move '679' to s_matnr-high.
    *append s_matnr.
    *AT SELECTION SCREEN EVENT.
    at selection-screen.
    IF S_MATNR NE '38'.
    MESSAGE i000.
    ENDIF.
    *START OF SELECTION EVENT
    start-of-selection.
    select matnr mtart matkl from mara into corresponding fields of table
    itab where matnr = s_matnr.
    IF SY-SUBRC NE 0.
    WRITE:/ 'SORRY'.
    ENDIF.
    *TOP OF PAGE EVENT
    top-of-page.
    write:/ 'TOP OF PAGE'.
    *END OF SELECTION EVENT
    END-OF-SELECTION.
    WRITE:/'SELECTION ENDED.'.
    create object pav1  exporting i_parent =  mara.
    CALL METHOD PAV1->set_table_for_first_display
      EXPORTING
       I_BUFFER_ACTIVE               =
       I_BYPASSING_BUFFER            =
       I_CONSISTENCY_CHECK           =
        I_STRUCTURE_NAME              = 'mara'
       IS_VARIANT                    =
       I_SAVE                        =
       I_DEFAULT                     = 'X'
       IS_LAYOUT                     =
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
      CHANGING
        it_outtab                     = itab[].
       IT_FIELDCATALOG               =
       IT_SORT                       =
       IT_FILTER                     =
    EXCEPTIONS
       INVALID_PARAMETER_COMBINATION = 1
       PROGRAM_ERROR                 = 2
       TOO_MANY_LINES                = 3
       others                        = 4
    IF sy-subrc ne 0.
    write:/ 'sorry u didnt call the method correctly'.
    ENDIF.

    You have to create a object for custom container for the class cl_gui_custom_container.Then you have to give the i_parent for the ALV class object as <custom container object>
    create object <custom container>
    create object <alv grid>
    importing i_parent = <custom container>.

  • How to debug sproxy class program?

    Hi experts,
    In my scenario, PI will pick flat files, then post the data to ECC.
    In ECC->sproxy->my scenario,double click the "provider class",then double click the method, I'll write the abap code here.
    How to debug the program?
    Thanks

    Hi Michael,
    After completion of writing the ABAP code. Keep a break point externally in your Proxy code and then try to execute. It will take to the break point and now check the code manually. If you need any changes modiify it accordingly.
    The below blog will help you to debug the inbound proxy.
    /people/stefan.grube/blog/2006/07/28/xi-debug-your-inbound-abap-proxy-implementation
    Thanks,

Maybe you are looking for

  • Network Stream Error -314340 due to buffer size on the writer endpoint

    Hello everyone, I just wanted to share a somewhat odd experience we had with the network stream VIs.  We found this problem in LV2014 but aren't aware if it is new or not.  I searched for a while on the network stream endpoint creation error -314340

  • Health and Utilization Monitor page

    Hello, On my ciscoworks hum page, by default i have the cpu utilization summary chart and device availability report chart (2 pie graphs). The chart for device availability is for 30 days. When i click on my pie chart, i only see data for the last da

  • How to enlarge checkbox column in table?

    THX!

  • IBook G4 won't boot after 10.5 software update?

    Hi, I have a iBook G4 14" 1.42GHZ 768mb of ram which was running fine under 10.4.11. I updated to OS X 10.5.4 via a retail discs and it installed and re-started perfectly. All seemed ok so i ran software update and the installation seemed to go fine.

  • AutoArchive doesn't execute in Outlook 2013

    I have a problem with auto archiving in outlook 2013 with exchange server 2007 account.The auto archiving doesn't work automatically unless i restart outlook .after i restart outlook  it works normally . any suggestions for this problem will be appre