如何编写启动脚本来加载quil / processing sketch?

时间:2017-03-02 02:06:00

标签: clojure leiningen boot-clj quil

我已经启动了其他示例,但我试图将它与quil / Processing一起使用。 我编写了这个简单的脚本并尝试运行它,但它只是启动一个Java Applet窗口然后立即关闭。没有错误日志供我调试。

#!/usr/bin/env boot
(set-env! :dependencies '[[quil "2.6.0"]])
(require '[quil.core :as q])
(defn setup []
  (q/background 111 111 111 )  )
(defn -main  [& args]
  (q/defsketch my-art
  :size [800 800]
  :setup setup))

3 个答案:

答案 0 :(得分:0)

此代码有效,但它不是正确的答案,因为它使用了睡眠。有没有睡觉的更好方法?:

    try
    {
        String query="Select * from client";
        PreparedStatement pst=conn.prepareStatement(query);
        ResultSet rs=pst.executeQuery();

        ResultSetMetaData rsmd = rs.getMetaData();
        int columnCount = rsmd.getColumnCount();

        DefaultTableModel tm = (DefaultTableModel) table.getModel();

        for(int i=1;i<=columnCount;i++)
        {
            tm.addColumn(rsmd.getColumnName(i));
        }

        while (rs.next()) 
        {
            String[] a = new String[columnCount];
            for(int i = 0; i < columnCount; i++)
            {
                a[i] = rs.getString(i+1);

            }
            tm.addRow(a);
    //      tm.fireTableDataChanged();

            rs.close();
            pst.close();
        } 
    } 

        catch(Exception e)
        {
            e.printStackTrace();
        }
}

答案 1 :(得分:0)

创建窗口后,主线程可能没有其他任何操作,JVM退出。您可以在致电(Thread/sleep 5000)后添加q/defsketch来确认这一点。

我快速浏览了quil的代码。 defsketch返回quil.Applet的实例,该实例实现processing.core.PApplet。虽然PApplet使用AWT,但它不会扩展或实现任何AWT类,但它会在内部创建其他处理类。

保持窗口打开的最简单方法是在创建草图后使用(.read System/in)从控制台读取。可能还有其他更好的方法。

答案 2 :(得分:0)

通常,您希望将示例转换为引导任务,然后调用羽毛笔任务+ watch任务以防止引导管道退出。

即。 boot watch quill

这将防止在完成羽毛笔任务后退出引导,但是根据羽毛笔的功能,您可能需要实施其他控制流。