【问题标题】:How to run a java applet code如何运行java小程序代码
【发布时间】:2018-02-14 16:00:39
【问题描述】:

我从未运行过 Java 代码,我想运行我将在下面发布的代码。那么有人能告诉我如何在 Ubuntu 上运行代码,包括我应该安装哪些东西吗?

我也想修改一下,把图片放在那个人的胸口,写上I LOVE YOU。任何人都可以帮助我吗?

import java.awt.*;
import java.applet.*;

public class FunnyClown extends Applet {

    public void init() {
    }

    public void paint(Graphics g) {

        g.drawString("See!  A Funny Clown=)", 30, 30 );

        //Draw a beautiful sky
        setBackground(Color.cyan);

         //Grass
        g.setColor(Color.green);
        g.fillRect(0,580,1500,3000);

        //Draw a round face
        g.setColor(Color.white);
        g.fillArc(555,300,140,150,0,360);

        //Eyes
        g.setColor(Color.black);
        g.fillArc(600,360,15,20,0,360);
        g.fillArc(640,360,15,20,0,360);

        //Smile
        g.setColor(Color.red);
        g.drawArc(615,420,20,8,190,200);

        //Hat
        g.setColor(Color.pink);
        g.fillArc(520,290,205,60,0,360);
        g.fillRect(568,220,115,100);
        g.fillArc(568,200,115,50,0,360);

        //Ribbons
        g.setColor(Color.white);
        g.fillRect(568,285,115,15);

        //Body
        g.setColor(Color.white);
        g.fillRect(543,470,25,70);
        g.fillRect(683,470,25,70);
        g.fillArc(543,535,20,25,0,360);
        g.fillArc(685,535,20,25,0,360);

        //T-shirt
        g.setColor(Color.yellow);
        g.fillRect(570,450,110,200);
        int []x1={570,500,570};
        int []y1={450,475,490};
        g.fillPolygon(x1,y1,3);
        int []x2={680,750,680};
        int []y2={450,475,490};
        g.fillPolygon(x2,y2,3);

        //Pants
        g.setColor(Color.blue);
        g.fillRect(570,580,110,150);
        g.setColor(Color.green);
        int []x3={625,598,638};
        int []y3={600,730,730};
        g.fillPolygon(x3,y3,3);

        //Shoes
        g.setColor(Color.black);
        g.fillArc(570,728,35,30,0,360);
        g.fillArc(642,728,35,30,0,360);

        //Clouds
        g.setColor(Color.white);
        g.fillArc(100,100,60,60,0,360);
        g.fillArc(120,120,70,70,0,360);
        g.fillArc(120,80,70,70,0,360);
        g.fillArc(160,70,80,80,0,360);
        g.fillArc(190,75,90,90,0,360);
        g.fillArc(240,85,60,60,0,360);
        g.fillArc(220,110,70,70,0,360);
        g.fillArc(170,120,70,70,0,360);

        //Sun
        g.setColor(Color.yellow);
        int x[]={900,1080,1180,980,1080,1180,800,900,1000};
        int y[]={100,80,150,80,100,80,110,100,60};
        g.fillPolygon(x,y,9);
        g.setColor(Color.red);
        g.fillArc(1015,50,80,80,0,360);

        //Flower
        g.setColor(Color.magenta);
        g.fillArc(80,500,20,20,0,360);
        g.fillArc(95,485,20,20,0,360);
        g.fillArc(110,500,20,20,0,360);
        g.fillArc(86,515,20,20,0,360);
        g.fillArc(103,515,20,20,0,360);
        g.setColor(Color.yellow);
        g.fillArc(95,503,20,20,0,360);
        g.setColor(Color.darkGray);
        g.fillRect(103,525,5,70);

        g.setColor(Color.magenta);
        g.fillArc(300,500,20,20,0,360);
        g.fillArc(315,485,20,20,0,360);
        g.fillArc(330,500,20,20,0,360);
        g.fillArc(306,515,20,20,0,360);
        g.fillArc(323,515,20,20,0,360);
        g.setColor(Color.yellow);
        g.fillArc(315,503,20,20,0,360);
        g.setColor(Color.darkGray);
        g.fillRect(323,525,5,70);

        g.setColor(Color.magenta);
        g.fillArc(190,500,20,20,0,360);
        g.fillArc(205,485,20,20,0,360);
        g.fillArc(220,500,20,20,0,360);
        g.fillArc(196,515,20,20,0,360);
        g.fillArc(217,515,20,20,0,360);
        g.setColor(Color.yellow);
        g.fillArc(205,503,20,20,0,360);
        g.setColor(Color.darkGray);
        g.fillRect(215,525,5,70);

        //House
        g.setColor(Color.gray);
        int []x4={850,1050,1250};
        int []y4={300,200,300};
        g.fillPolygon(x4,y4,3);
        g.setColor(Color.lightGray);
        g.fillRect(850,300,400,300);


        //Window
        g.setColor(Color.cyan);
        g.drawRect(1100,350,100,100);
        g.drawLine(1100,400,1200,400);
        g.drawLine(1150,350,1150,450);

        //Door
        g.setColor(Color.darkGray);
        g.fillRect(900,400,130,200);
        g.setColor(Color.yellow);
        g.fillArc(930,480,10,10,0,360);





    }
}

以下是运行代码时应该显示的内容:

【问题讨论】:

  • 我将把绒毛编辑出来(这里有标准。你们的关系与编程问题和答案无关)。但无论如何,它是一个小程序。现在已经没有可以运行小程序的浏览器了。坐下来把它改成合适的应用程序。
  • 有很多关于如何在 Ubuntu 上安装 Java 的教程。要在没有浏览器的情况下运行小程序,您可以使用appletviewer

标签: java ubuntu graphics applet


【解决方案1】:

要绘制 I love you 文本,您可以调用:g.drawString(...) 方法并将其放置在 T 恤上。

接下来要绘制心形,您可以使用 ASCII 的心形调用相同的方法:

但一定要使用漂亮(足够大)的字体,这样才能正确显示,例如:

g.setFont(new Font("Verdana", Font.PLAIN, 25));
g.setColor(Color.BLACK);
g.drawString("I love you", 570, 480);

g.setColor(Color.RED);
g.drawString("♥", 620, 510);

但正如您所说,浏览器不再支持 Java Applet,您可以做两件事:

  1. 将代码转换为 Swing 应用程序(推荐)
  2. 使用 AppletViewer(我从未使用过)

我们将完成第一个:

首先,我们需要改变:

// Draw a beautiful sky
setBackground(Color.cyan);

为:

g.setColor(Color.CYAN);
g.fillRect(0, 0, 1500, 1000); //I'm lazy to search the window size... change it accordingly

接下来,我们需要从我们的类中删除extends Applet并将其更改为extends JPanel并更改

public void paint(Graphics g) {

收件人:

@Override
public void paintComponent(Graphics g) {

并添加另一个覆盖方法:

@Override
public Dimension getPreferredSize() {
    return new Dimension(1500, 1000); //Again, change it to the window's correct size.
}

为了完成,我们需要创建一个main 方法,如下所示:

private JFrame frame;

public static void main(String[] args) {
    SwingUtilities.invokeLater(new FunnyClown()::createAndShowGui);
}

private void createAndShowGui() {
    frame = new JFrame(getClass().getSimpleName());

    this.setOpaque(true);
    frame.add(this);
    frame.pack();
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

现在,如果您运行应用程序,您应该会看到如下内容:

作为参考,您需要:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多