在JavaSwing中单击鼠标创建文本字符串?

在JavaSwing中单击鼠标创建文本字符串?,java,swing,Java,Swing,使用swing,每当我单击鼠标时,尝试使文本“鼠标被单击”在屏幕上显示2秒钟 这就是我目前所拥有的 String s = ""; int timeDelay = 30; public void paintFrame(Graphics g) { g.drawString(s, 100, 100); if (timeDelay>0) { timeDelay--; } if(isMouseClicked

使用swing,每当我单击鼠标时,尝试使文本“鼠标被单击”在屏幕上显示2秒钟

这就是我目前所拥有的

String s = "";
int timeDelay = 30;
public void paintFrame(Graphics g) {
        g.drawString(s, 100, 100);

        if (timeDelay>0) {
            timeDelay--;

        }

        if(isMouseClicked()) {
            String s = "Mouse is clicked";
            timeDelay = 30;
            return;
        }

        String s = "";
}

当我点击时,没有显示任何内容,似乎不知道为什么

如果isMouseClicked()的条件为,则需要在内部调用g.drawString()。此外,在isMouseClicked()的if条件中,您正在创建一个新的本地参数字符串s(不确定是否要这样做)。你可以试试下面的代码

 if(isMouseClicked()) {
        s = "Mouse is clicked";
        timeDelay = 30;
        g.drawString(s, 100, 100);
  }
 else{
      s = "";
 }
 g.drawString(s, 100, 100);

如果它没有因为任何原因消失,您可以使用第三操作符进行快速修复。根据isMouseClicked()布尔值设置字符串


这里的结果看起来取决于调用paintFrame的方式和频率,以及isMouseClicked()的实现,因此您可能需要显示该代码并解释您认为它的作用。您希望查看操作侦听器,这将非常有帮助。我将为mouseclick实现一个操作侦听器,将字符串放在屏幕上,等待2秒钟,然后删除它。尝试修改后的代码。发生这种情况的原因是,当鼠标未被单击时,您没有为该情况调用draw。还有,你是如何使用时间延迟的?现在可以了,虽然它不会持续两秒钟。画框内的所有东西每秒运行15次,对吗?timeDelay为30秒,持续两秒。@jzacharia我不确定你的代码是如何使用timeDelay的,除非我看到了实际的代码,否则我无法对其进行评论。问题是让文本显示两秒,而不仅仅是在按下鼠标时。你的回答对问题的时间安排没有帮助。另外,它的拼写是“三元”,而不是“三元”:(我假设isMouseClicked()用于确定文本是否应该显示,但我想如果只是鼠标单击,则更有意义。拼写错误是我的错
s = isMouseClicked() ? "Mouse is clicked" : "";
g.drawString(s,100,100);