我有以下问题:我正在尝试执行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提供一些args,但是当我尝试简单地打印我刚刚传递给main的字符串时(只是为了检查它是否通过)我在屏幕上什么也没得到。所以问题是如何将参数传递给此代码以在initWordCram中自定义.fromTextFile?
非常感谢你!
答案 0 :(得分:1)
来自:https://wordcram.wordpress.com/2010/09/09/get-acquainted-with-wordcram/:
丹尼尔伯尼尔说:您无法将命令行参数直接传递给WordCram,因为它没有可执行文件。
但是你可以创建一个可执行的包装器(基于WordCram附带的IDE示例),它可以读取命令行参数&根据需要将它们传递给WordCram。
仅供参考,它仍会在某个地方弹出一个Applet - AFAIK,你无法真正运行Processing“无头”。但如果你想在服务器上运行,这通常只是一个问题。