摆动,重复使用一个"screen"进行多次运行



我必须开发一个Java swing应用程序,该应用程序应该执行心理实验。

实验由一个白色屏幕组成,屏幕上出现一个小表情符号,"站在那里"3秒钟,然后消失。然后屏幕又变白了,用户必须点击他认为表情符号所在的空间。之后,另一个表情符号出现在不同的空间,整个过程重复多次。将有一个数据库用于保存原始坐标和用户点击的坐标。

我的问题是,这将如何在一个窗口中发生?我尝试过多个JForms,但工作量太大,而且它为每次迭代打开了不同的窗口。

从开始

  • 使用Swing创建GUI
  • 执行自定义绘画
  • Swing中的并发
  • 如何编写鼠标侦听器

JPanel开始。这是你所有工作的地方。您可以创建一个JFrame的实例并将该组件添加到其中

当用户准备好后,您将开始一个循环。这将从数据库加载详细信息,启动javax.swing.Timer并请求重新绘制组件(以便显示图像)

当计时器触发时,应重置显示(空白)。

当用户单击组件(鼠标侦听器将检测到)时,您可以记录鼠标点并开始新的循环。

以下是操作步骤。您需要创建一个扩展JPanel并覆盖paintComponent的类,以便在适当的位置绘制图像。构造函数还应该添加一个鼠标侦听器,该侦听器可以检测到鼠标在适当区域的点击,更新数据,并调用repaint()。至于在指定时间后隐藏表情符号,请使用摆动Timer

现在,我不打算举一个例子,因为我们不会为你做堆栈溢出的作业。

我的推荐:

使您的窗口成为JPanel并覆盖绘制方法

public class MyPanel extends JPanel {
    public void paint(Graphics g) {
    // do your painting here
    }
}

首先确保从Jpanel上擦除所有东西(从绘制方法)接下来在paint方法中显示表情符号图像(搜索java swing paint图像…)但前提是表情符号数据存在(coordiantes)。

接下来做一个功能,将切换表情符号坐标

toggleEmoticon(){
 if(emoticon.x != -1 && emoticon.y != -1){
   emoticon.x=-1;
   emoticon.y=-1;
 }
 else{
   emoticon.x = random() //between 0 and panel width
   emoticon.y = random() //between 0 and panel height
 }

制作一个计时器,在x秒后调用此函数。。。

然后,您必须检查鼠标单击坐标是否接近或在显示的笑脸的范围内。。。(请注意,显示的笑脸将从选定的坐标+宽度和高度显示)

我认为你可以解决剩下的问题。为我告诉你的东西找例子,试着自己做一些事情,永远不要指望有一个有效的例子,否则你什么都不知道怎么做。。。

相关内容

  • 没有找到相关文章

最新更新