We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Here is a simple .pde written for Processing 2.2.1. Its just an example from the Tablet library with code that accesses the frame in Processing 2. I know about the exit() function, but that doesn't work when you turn it into an application in Processing, but the window listener does work. Besides, I need to access the frame for a menu and be able to record its location as well in my real program . This is just simple example to make a runnable jar with the things I need.
import g4p_controls.*;
import codeanticode.tablet.*;
import java.awt.*;
import java.awt.event.*;
Tablet tablet;
void setup() {
size(640, 480);
tablet = new Tablet(this);
frame.setResizable(true);
frame.addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e){
int answer = G4P.selectOption(this, "BackupWork?", "BackupWork?", G4P.WARNING, G4P.YES_NO);
if(answer == G4P.YES)
;
}
});
background(0);
stroke(255);
}
void draw() {
if (mousePressed) {
strokeWeight(30 * tablet.getPressure());
line(pmouseX, pmouseY, mouseX, mouseY);
}
}
This works fine in processing 2.2.1 and behaves as expected. Turning this into an application in Processing2 generates this java source file:
import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;
import g4p_controls.*;
import codeanticode.tablet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class BasicDrawingExample2 extends PApplet {
Tablet tablet;
public void setup() {
size(640, 480);
tablet = new Tablet(this);
// frame.setResizable(true);
// frame.addWindowListener( new WindowAdapter(){
// public void windowClosing(WindowEvent e){
// int answer = G4P.selectOption(this, "BackupWork?", "BackupWork?", G4P.WARNING, G4P.YES_NO);
// if(answer == G4P.YES)
// ;
// }
// });
background(0);
stroke(255);
}
public void draw() {
if (mousePressed) {
strokeWeight(30 * tablet.getPressure());
line(pmouseX, pmouseY, mouseX, mouseY);
}
}
static public void main(String[] passedArgs) {
String[] appletArgs = new String[] { "BasicDrawingExample2" };
if (passedArgs != null) {
PApplet.main(concat(appletArgs, passedArgs));
} else {
PApplet.main(appletArgs);
}
}
}
I've had to comment out all references to "frame " because it gives a null pointer exception when I use this in a project in Eclipse. With that done, the program does work in Eclipse. I runs fine in an applet window and with the pen .dll copied into the project's binary folder, the pen pressure works. I can't access "frame" and I can't seem to make it a runnable jar. What am I doing wrong?
Answers
It would appear I am doomed to confine myself to the Processing 2.2.1 IDE. Thats the problem with magic. It resides in a box.
How come you never shifted to Processing 3?
For my purpose, the performance is not as good as processing 2.2.1 But as a far as my problem above, it was just a matter of running it as a java application in eclipse and not running it in the applet viewer. After doing so, I can access frame and make it a runnable jar.
Running it as an applet - that would be outdated if you were using Processing 3.