Java Can';t拖动圆,如书本中的示例(小程序)
因此,我的大学使用DS Malik的《Java编程从问题分析到程序设计》(ISBN:978-1-111-53053-2)一书,在其中一个例子中,我逐字复制了代码。它可以运行,但也不能按预期的方式工作。你要做的是能够在小程序中点击并拖动填充屏幕的圆圈。如果有人对编程示例感兴趣,请点击12-10。我已经提供了eclipse中的代码。非常感谢您的帮助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
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(?左右),这意味着大多数人甚至不能再编译基于小程序的代码了。好吧,我肯定找不到新的老师或书,所以这是不可能的。我在哪里可以找到好的应用程序指南?