我的应用程序(java)没有显示在我为它设置的窗口中

时间:2016-03-24 00:41:12

标签: java eclipse processing

我使用处理(processing.org)在eclipse中创建了一个java应用程序,该处理应该显示在这个窗口not displayed at the right place中,但正如你所看到的那样,它并不起作用。 我已经尝试过使用proclipsing编译应用程序的方法:http://www.instructables.com/id/Proclipsing-Using-the-Eclipse-IDE-for-Processing-p/,但它不起作用,我不想用这种方式。 这就是我的代码:

package HelloProcessing;

import java.awt.*;
import javax.swing.*;
import processing.core.*;

public class main
{

    public static void main(String args[])
    {
        PApplet.main(new String[] {"--present", "HelloProcessing.HelloProcessing"});
        JFrame frame = new JFrame("HelloProcessing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel emptyLabel = new JLabel("");
        emptyLabel.setPreferredSize(new Dimension(HelloProcessing.xs, HelloProcessing.ys));
        frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }
}

package HelloProcessing;

import processing.core.*;

public class HelloProcessing extends PApplet
{
    /*
     * public static void main(String args[])
     * {
     * PApplet.main(new String[] {"--present", "HelloProcessing.HelloProcessing"});
     * }
     */

    float rb = 255;
    float gb = 255;
    float bb = 255;
    static int xs = 500;
    static int ys = 500;

    float xe = 150;
    float ye = 150;
    float we = 100;
    float he = 100;

    float re = 255;
    float ge = 0;
    float be = 0;

    float xr = 250;
    float yr = 250;
    float wr = 100;
    float hr = 100;

    float rr = 0;
    float gr = 0;
    float br = 255;

    public void setup()
    {
        background(rb, gb, bb);
    }

    public void settings()
    {
        /* size(500, 500); */
        size(xs, ys);  
    }

    public void draw()
    {
        int ecolor = color(re, ge, be);
        fill(ecolor);
        ellipse(xe, ye, we, he);

        int rcolor = color(rr, gr, br);
        fill(rcolor);
        rect(xr, yr, wr, hr);
    }
}

你能帮帮我吗?

由于

2 个答案:

答案 0 :(得分:0)

调用PApplet.main()函数为您构建一个窗口,并在该窗口中显示Processing sketch。

然后你创建第二个JFrame并显示它。但是第二个JFrame对您的Processing sketch没有任何了解。您只需向其添加一个空的JLabel,因此它无法显示任何内容。

在处理3之前,您曾经可以直接在PApplet中嵌入JFrame。但是在处理3之后,由于PApplet不再延长Applet,因此您无法再这样做了。

您仍然可以通过Component课程到达基础PSurface,但这对新手来说并不是很友好。或者,您可以将Processing用作Java库并自己构建PGraphics,但这也不是很简单。

答案 1 :(得分:0)

Kevin Workman说我:
停止传入“--present”作为参数。这就是告诉它全屏显示的内容。