我有以下问题:我正在尝试执行usConstitution wordcram示例(后接代码),如果按原样在eclipse中执行该代码,则将启动applet,并创建单词cloud。 (代码如下)
import processing.core.*;
//import processing.xml.*;
import wordcram.*;
import wordcram.text.*;
import java.applet.*;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.KeyEvent;
import java.awt.event.FocusEvent;
import java.awt.Image;
import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
import java.util.zip.*;
import java.util.regex.*;
public class usConstitution extends PApplet {
/*
US Constitution text from http://www.usconstitution.net/const.txt
Liberation Serif font from RedHat: https://www.redhat.com/promo/fonts/
*/
WordCram wordCram;
public void setup() {
size(800, 600);
background(255);
colorMode(HSB);
initWordCram();
}
public void initWordCram() {
wordCram = new WordCram(this)
.fromTextFile("http://www.usconstitution.net/const.txt")
.withFont(createFont("https://www.redhat.com/promo/fonts/", 1))
.sizedByWeight(10, 90)
.withColors(color(0, 250, 200), color(30), color(170, 230, 200));
}
public void draw() {
if (wordCram.hasMore()) {
wordCram.drawNext();
}
}
public void mouseClicked() {
background(255);
initWordCram();
}
static public void main(String args[]) {
PApplet.main(new String[] { "--bgcolor=#ECE9D8", "usConstitution" });
}
}
我的问题如下:
我想通过main(这是唯一的静态类)一个参数,以便从另一个提供我想要的有效文件名的类中调用usConstitution.class,以产生其词云。那我该怎么做呢?我尝试调用usConstitution.main来提供一些参数,但是当我尝试简单地打印刚刚传递给main的字符串(只是检查是否传递)时,屏幕上什么也没有。所以问题是我如何在此代码中传递参数以自定义initWordCram中的.fromTextFile?
万分感谢!
最佳答案
来自:https://wordcram.wordpress.com/2010/09/09/get-acquainted-with-wordcram/:
丹尼尔·伯尼尔(Daniel Bernier)说:
2013年6月11日,上午1:13
您无法将命令行参数直接传递给WordCram,因为它没有可执行文件。
但是您可以制作一个可执行的包装器(基于WordCram附带的IDE示例),并且它可以读取命令行参数并将它们根据需要传递给WordCram。
仅供参考,它仍然会在某个地方弹出Applet – AFAIK,您无法真正运行“无头处理”。但这通常只是一个问题,如果您尝试在服务器上运行。