问题描述
因此,我正在尝试为班级的期末项目制作游戏副本 (http://www.aimbooster.com/),但我一生都无法思考如何制定目标。我尝试了一个绘制组件,但无法单击绘制组件。有没有人有一些想法?这是我的代码
package Final_Project;
import javax.swing.JFrame;
public class aimFrame
{
public static void main(String[] args)
{
{
JFrame frame = new JFrame("aim Booster");
frame.setDefaultCloSEOperation(3);
frame.getContentPane().add (new aimPanel(600,600));
frame.pack();
frame.setVisible(true);
}
}
}
主要代码是
package Final_Project;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
public class aimPanel extends JPanel
{
private int width,height;
private int px,py,pw,ph;
private Timer circletimer;
private Timer targettimer;
private ArrayList<Point> circles;
private ArrayList<Point> targets;
public aimPanel(int width,int height)
{
this.width = width;
this.height = height;
this.setPreferredSize(new Dimension(width,height));
this.setBackground(Color.gray);
px = 0;
py = 0;
pw = ph = 50;
this.addMouseListener(new ClickListener());
circles = new ArrayList<Point>();
circletimer = new Timer (3000,new circlelistener());
targettimer = new Timer (5000,new circlelistener());
targets = new ArrayList<Point>();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.black);
for(int i = 0; i < circles.size(); i++)
{
g.filloval(circles.get(i).x,circles.get(i).y - 10,10,10);
}
super.paintComponent(g);
g.setColor(Color.orange);
for(int i = 0; i < targets.size(); i++)
{
g.fillRect(targets.get(i).x,targets.get(i).y -50,50,50);
}
}
private class ClickListener implements MouseListener
{
@Override
public void mouseClicked(MouseEvent e)
{
}
@Override
public void mousepressed(MouseEvent e)
{
System.out.println("Clicked");
//add points to circle list
circles.add(new Point(e.getX(),e.getY()));
circletimer.start();
repaint();
}
@Override
public void mouseReleased(MouseEvent e)
{
}
@Override
public void mouseEntered(MouseEvent e)
{
}
@Override
public void mouseExited(MouseEvent e)
{
}
}
private class circlelistener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
if (circles.size()>0)
circles.remove(0);
repaint();
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)