6

I downloaded Processing from https://processing.org/.

How can I use Processing in my Java application? I want to draw stuff depending on the logic in my Java application. To avoid the drawing in Java I want to use Processing instead.

5
  • There are some simple tutorials. Have a look at them. processing.org/tutorials Commented Jan 23, 2014 at 13:45
  • processing.org/reference/environment/#Programming_modes This looks like covering Processing in Java Commented Jan 23, 2014 at 13:49
  • I included the core.jar from pocessing libs folder Commented Jan 23, 2014 at 14:00
  • only the last tutorial is maybe useful, but the example is not working on the call of the size() methode id get a Null Pointer Exception Commented Jan 23, 2014 at 14:04
  • Fount the way to include. 1. Use core.jar from processing/core/library 2. Import processing.core.PApplet; 3. Create AnClass extending PApplet (use Processing functions in) 4. Create new Applet in your application > PApplet.main(new String[] { "--present", "MyProcessingSketch" }); Commented Jan 23, 2014 at 17:49

4 Answers 4

8

Piece of cake,

First,

In your IDE (eg Netbeans) first include the processing jar in your build, put it some place your program can find it. For example if you use maven just add the dependancy:

<dependency>
    <groupId>org.processing</groupId>
    <artifactId>org.processing.core</artifactId>
    <version>2.1.1</version>
</dependency>

Second,

Add a main class to your program this can be very simple. You just need to reference the class where your code will be:

public class Application {

    public static void main(String[] args) {
        new Application();
    }

    public Application() {
        init();
    }

    private void init() {
        Visualization.main("me.qcarver.ballsack.Visualization");

    }
}

Lastly,

Add your new class with the package name as you gave in quotes above. The only thing to remember is this class must (1) import processing.core.PApplet (2) extend PApplet (3) implement public void draw and public void setup

Eg:

   package me.qcarver.ballsack
   public class Visualization extends PApplet{

    public void setup() {
        size(500,400);
        background(grayValue);        
    }

        public void draw(){
            elipse(200,200,50,50);
        }
    }

Snippets above are based on this example project which runs Processing.org code in a java application.

Sign up to request clarification or add additional context in comments.

3 Comments

I know we aren't supposed to use this area for this but 'ballsack' had me rolling. Thanks for this hidden gem.
If anyone has trouble with this code and the latest Processing libraries - I've updated for v3.2.1 in a separate answer.
This is missing a few details: Visualization needs to be a toplevel class or static inner class (so that it has a no-args constructor -- this won't work if Visualization is a non-static inner class), and the correct syntax for calling the PApplet is Visualization.main(new String[]{Visualization.class.getName()});, i.e. it needs to be wrapped in new String[]{}. Also, (not directly related to the question, but) if calling size(xsize, ysize, PDF, filename), this will cause the PDF file to be written an infinite number of times -- you need to disable frame refresh when writing PDFs.
4

If anyone has trouble with the earlier code example and the latest Processing libraries - I've updated for v3.2.1 and uploaded the working code:

https://github.com/thomasbratt/ProcessingInIntellij

package com.github.thomasbratt.processingtest;

import processing.core.PApplet;

public class Visualization extends PApplet {

    public static void main(String[] args) {
    PApplet.main("com.github.thomasbratt.processingtest.Visualization");
    }

    @Override
    public void settings() {
        size(640, 480);
    }

    @Override
    public void setup() {
        fill(120,50,240);
    }

    @Override
    public void draw(){
        ellipse(width/2,height/2,second(),second());
    }
}

pom.xml:

<dependency>
    <groupId>org.processing</groupId>
    <artifactId>core</artifactId>
    <version>3.2.1</version>
</dependency>

Comments

1

Turns out, when you download Processing in core/library there is Core.jar. If you add that to your class path you can do it. Here is a skeleton for you to use:

package com.company;

import processing.core.PApplet;

/* "Main" can be anything */
public class Main
        // Enable Processing features here
        extends PApplet {

    public static void main(String[] args) {
        // Run the app
        PApplet.main("com.company.Main");
    }

    // This actualy would be setup() in Processing IDE
    public void settings() {
        size(500,400);
    }

    public void draw() {
        // All Processing functions and constants can be used here
        ellipse(200,200,50,50);
    }
}

If you want to use Processing functions like mouseClicked, use this skeleton in the class:

public void RANDOM_PROCESSING_FUNCTION() {
       // Stuff you want to do
}

1 Comment

By The Way This Is if You Dont Have Something Like Maven
-2

I'd suggest you learn how to do your drawing in Java, see for example: http://docs.oracle.com/javase/tutorial/2d/ Using processing in java is not really going to make it simple.

1 Comment

Using Processing in Java is great! So much easier than Java for drawing, and so many examples to learn from.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.