Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t拖动圆,如书本中的示例(小程序)_Java_Swing_User Interface_Applet - Fatal编程技术网

Java Can';t拖动圆,如书本中的示例(小程序)

Java Can';t拖动圆,如书本中的示例(小程序),java,swing,user-interface,applet,Java,Swing,User Interface,Applet,因此,我的大学使用DS Malik的《Java编程从问题分析到程序设计》(ISBN:978-1-111-53053-2)一书,在其中一个例子中,我逐字复制了代码。它可以运行,但也不能按预期的方式工作。你要做的是能够在小程序中点击并拖动填充屏幕的圆圈。如果有人对编程示例感兴趣,请点击12-10。我已经提供了eclipse中的代码。非常感谢您的帮助 import javax.swing.*; import java.awt.event.*; import java.applet.*; import

因此,我的大学使用DS Malik的《Java编程从问题分析到程序设计》(ISBN:978-1-111-53053-2)一书,在其中一个例子中,我逐字复制了代码。它可以运行,但也不能按预期的方式工作。你要做的是能够在小程序中点击并拖动填充屏幕的圆圈。如果有人对编程示例感兴趣,请点击12-10。我已经提供了eclipse中的代码。非常感谢您的帮助

import javax.swing.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.*;


public class FreeDrawApplet extends JApplet implements MouseMotionListener
{



    //instance variables
    ColorCircle[] myGraph;

    final int NUM_CIRCLES = 7;
    final int WIDTH = 400;
    final int HEIGHT = 400;



    public class ColorCircle
    {
        private int x;
        private int y;

        public void setx(int iNewX)
        {
            x = iNewX;
        }
        public void sety(int iNewY)
        {
            x = iNewY;
        }
        public void paint (Graphics g)
        {
            g.fillOval(x-10, y-10, 20, 20);
        }
        public boolean selected(int iXcoord, int iYcoord)
        {
            if ((iXcoord >= x-10) && (iXcoord <= x+10) && (iYcoord >= y-10) && (iYcoord <= y+10))
                return true;
            else
                return false;
        }

    }//end of public class circle

    public void init ()
    {
        addMouseMotionListener(this);
        myGraph = new ColorCircle[NUM_CIRCLES];

        for(int i = 0; i < NUM_CIRCLES; i++)
        {
            ColorCircle myVertex = new ColorCircle();

            myVertex.setx((int)(Math.random() * (WIDTH-50)));

            myVertex.sety((int)(Math.random() * (HEIGHT-100)));

            myGraph[i] = myVertex;
        }

        JOptionPane.showMessageDialog(null, "Try to drag any one of the colored circles ", "Information", JOptionPane.PLAIN_MESSAGE);
    }//end of method

    public void paint(Graphics g)
    {
        Color[] myColor = {Color.black, Color.red, Color.blue, Color.green, Color.cyan, Color.orange, Color.yellow};

        if(NUM_CIRCLES > 0)
            for(int i =0; i < NUM_CIRCLES; i++)
            {
                g.setColor(myColor[i]);
                myGraph[i].paint(g);
            }

    }//end of paint method

    public void mouseDragged(MouseEvent event)
    {
        int iX = event.getX();
        int iY = event.getY();

        for(int i = 0; i < NUM_CIRCLES; i++)
        {
            if(myGraph[i].selected(iX, iY))
            {
                myGraph[i].setx(iX);
                myGraph[i].sety(iY);
                break;
            }

        }

        repaint();
    }


    public void mouseMoved(MouseEvent p1)
    {
    }


}
import javax.swing.*;
导入java.awt.event.*;
导入java.applet.*;
导入java.awt.*;
公共类FreeDrawApplet扩展JApplet实现MouseMotionListener
{
//实例变量
彩色圆图;
最终整数圈=7;
最终整数宽度=400;
最终内部高度=400;
公共类彩色圈
{
私人INTX;
私营企业;
公共无效集合x(int iNewX)
{
x=iNewX;
}
公共空间设置(int iNewY)
{
x=iNewY;
}
公共空间涂料(图g)
{
g、 椭圆形(x-10,y-10,20,20);
}
已选择公共布尔值(int-iXcoord、int-iYcoord)
{
如果((iXcoord>=x-10)和&(iXcoord=y-10)和&(iYcoord 0)
对于(int i=0;i
1)为什么要编写小程序?如果是老师指定的,请参考。2)小程序对于处理互联网上“所有参与者”的网站来说已经完全不可行了。浏览器制造商已经或准备完全取消对它们的支持。最好尽快从小程序过渡到纯JS/HTML。是的,他可以现在,这本书中的一个作业需要一个小程序。我想更好地理解这段代码,因为我不了解gui的工作原理。“我想更好地理解这段代码,因为我不了解gui的工作原理。”然后你就把注意力集中在小程序上,建立了一堵巨大的墙。过去,SO上的大多数人都不知道/不太关心它们来提供帮助。我是SO上答案的顶级提供者(并写了关于它们和许多相关技术的文章)。即使是我也不会为它们烦恼(思考或帮助)再有。找一本新书,如果需要的话,找一位新老师。或者更简单地说,只做应用程序的工作。顺便说一句——大多数可能帮助解决问题的开发人员都会复制/粘贴、编译并运行ppl要求帮助的代码。问题是,Oracle弃用了小程序,并从Java中删除了类。9(?左右),这意味着大多数人甚至不能再编译基于小程序的代码了。好吧,我肯定找不到新的老师或书,所以这是不可能的。我在哪里可以找到好的应用程序指南?