将参数传递给WordCram代码

时间:2014-08-16 16:59:46

标签: java class static processing

我有以下问题:我正在尝试执行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?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

来自:https://wordcram.wordpress.com/2010/09/09/get-acquainted-with-wordcram/

丹尼尔伯尼尔说:
2013年6月11日上午1:13

您无法将命令行参数直接传递给WordCram,因为它没有可执行文件。

但是你可以创建一个可执行的包装器(基于WordCram附带的IDE示例),它可以读取命令行参数&根据需要将它们传递给WordCram。

仅供参考,它仍会在某个地方弹出一个Applet - AFAIK,你无法真正运行Processing“无头”。但如果你想在服务器上运行,这通常只是一个问题。