Tag: timer

启用JLabel闪烁3次,然后保持不可见/消失

我打算编写控制JLabel闪烁三次的java代码,然后在第三次闪烁后启用其中的文本保持透明/“消失”。 从下面的代码中可以看出,我已经能够编写一个持续闪烁的JLabel,但是想创建一个只闪烁三次的JLabel,然后使其中的文本保持透明。 public class BlinkLabel extends JLabel { private static final long serialVersionUID = 1L; private static final int BLINKING_RATE = 1000; // in ms private boolean blinkingOn = true; public Timer timer; public BlinkLabel(String text) { super(text); timer = new Timer( BLINKING_RATE , new TimerListenerTwo()); timer.setInitialDelay(0); timer.start(); } public void setBlinking(boolean flag) { this.blinkingOn […]

如何停止等待用户输入?

我正在构建一个程序来询问乘法,我想设置一个计时器来强制该人在给定时间内给出答案: 如果此人在计时器结束前回答:请进行下一次乘法 如果计时器到达终点,则停止等待用户输入:转到下一个乘法 目前,案例1可以完成,但不是2 ,我正在考虑return;的方法return; 从一个线程内的方法或其他东西,我不知道如何 所以我遇到了一个问题,如果Scanner打开,等待输入,如何阻止? 我已经尝试将它放在一个线程和interrupt()它或使用boolean作为标志,但它不会停止Scanner class Multiplication extends Calcul { Multiplication() { super((nb1, nb2) -> nb1 * nb2); } @Override public String toString() { return getNb1() + “*” + getNb2(); } } abstract class Calcul { private int nb1, nb2; private boolean valid; private boolean inTime = true; private boolean answered = […]

西蒙的闪烁按钮说

我正在制作一个Simon说的程序,我需要按钮在生成随机模式时闪烁,以便用户知道要输入什么。 我的问题是我不能让我的按钮(JButtons是图像)闪烁,我的逻辑是两个按钮在彼此的顶部,一个可见,而不是然后切换按钮可见性,等待一秒然后再改回来。 我试过使用Thread.sleep(),wait(),甚至繁忙的循环等待,但没有一个工作。 我被告知摇摆计时器是我最好的选择,这就是我想要使用的。 此外,我希望按钮在单击开始按钮后开始闪烁。 public class GamePanel extends JPanel implements ActionListener { private JButton greenButton; private JButton startButton; private JButton greenBlinkButton; private GridBagConstraints gbc; private Timer buttonTimer; GamePanel() { gbc = new GridBagConstraints(); GridBagLayout grid = new GridBagLayout(); setLayout(grid); //GridBag location lets startButton = new JButton(“Start”); gbc.gridx = 0; gbc.gridy = 0; add(startButton, gbc); […]

如果我们不生成窗口,为什么Timer不起作用?

这是代码: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.Timer; public class TimerSample { public static void main(String args[]) { new JFrame().setVisible(true); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { System.out.println(“Hello World Timer”); } }; Timer timer = new Timer(500, actionListener); timer.start(); } } 它会生成一个窗口,然后在终端中定期打印“Hello World Timer”(命令提示符)。 如果我评论这一行new JFrame().setVisible(true); 应用程序不会在命令行中打印任何内容。 为什么? 添加: 我不确定我是否正确理解答案。 […]

如何让这个定时器服务类处理“预定时间的变化”?

示例代码: @Singleton @Startup public class EBlastScheduler { @Resource TimerService timerService; EBlastScheduler what = new EBlastScheduler(); @PostConstruct public void initialize(){ if (timerService.getTimers() != null) { for (Timer timer : timerService.getTimers()) { if (timer.getInfo().equals(“EBlastScheduler”)){ timer.cancel(); } } } ScheduleExpression expression = new ScheduleExpression(); expression.second(“*/1”).minute(“*”).hour(“*”); timerService.createCalendarTimer(expression); } @Timeout public void execute(Timer timer){ System.out.println(“—-Invoked: ” + System.currentTimeMillis()); } } […]

Java EE 7自动计时器(EJB计时器)不适用于WildFly 8.1.0

我正在按照使用定时器服务教程来构建一个简单的计划执行。 尝试自动方法并使用WildFly 8.1.0 Final 。 会话Bean @Singleton @Startup public class HelloJob { private static final Logger logger = Logger.getLogger(HelloJob.class); public HelloJob() { logger.error(“>>> Hello Job Created.”); } @Schedule(second=”*”) public void sayHello() { logger.error(“>>> Server Hello!”); } } 在部署时,正确实例化类,打印>>> Hello Job Created. 消息,但方法sayHello()永远不会被调用。 根据教程,@ @Schedule(second=”*”)表示它应该每秒执行一次。 将属性设置为星号(*)表示属性的所有允许值。 此外,只有有状态会话bean不允许用于计时器,我使用的是单例,也在示例中使用。 企业bean容器的计时器服务使您可以为除有状态会话bean之外的所有类型的企业bean计划定时通知。

可以在运行时为@Schedule注释更改ejb参数吗?

对于有ejb经验的人来说可能是一个愚蠢的问题…… 我想通过@Schedule注释为我的一个使用Java EE调度程序的EJB bean动态读取和更改minute参数。 任何人都知道如何在运行时执行此操作,而不是像下面那样在类中对其进行硬编码? 如果我以编程方式执行此操作,我仍然可以使用@Schedule注释吗? @Schedule(dayOfWeek = “0-5”, hour = “0/2”, minute = “0/20”, timezone = “America/Los_Angeles”) private void checkInventory() { }

如何每小时呼叫function? 另外,我该如何循环呢?

我需要一种简单的方法来每隔60分钟调用一次函数。 我怎样才能做到这一点? 我正在制作一个MineCraft bukkit插件,这就是我所拥有的: package com.webs.playsoulcraft.plazmotech.java.MineRegen; import java.util.logging.Logger; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin{ public final Logger log = Logger.getLogger(“Minecraft”); @Override public void onEnable() { this.log.info(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~”); this.log.info(“Plaz’s Mine Regen is now enabled!”); this.log.info(“Copyright 2012 Plazmotech Co. All rights reserved.”); this.log.info(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~”); } @Override public void onDisable() { […]

如何阻止无休止的EJB 3计时器?

我是EJB 3的新手。 我使用以下代码启动无限的EJB 3计时器,然后在JBOSS 4.2.3上部署它 @Stateless public class SimpleBean implements SimpleBeanRemote,TimerService { @Resource TimerService timerService; private Timer timer ; @Timeout public void timeout(Timer timer) { System.out.println(“Hello EJB”); } } 然后叫它 timer = timerService.createTimer(10, 5000, null); 它运作良好。 我创建了一个客户端类,它调用一个创建计时器的方法和一个在计时器超时时调用的方法。 我忘记打电话取消然后它不会停止.redeploy取消呼叫永远不会停止它。 重启Jboss 4.2.3从不停止它。 我怎么能停止EJB计时器? 谢谢你的帮助。

计时器和JFrame出错

我正在制作一个带有计时器和JFrame的游戏(以及许多其他东西,但只有这两个导致问题),并且在运行下面的段后,我得到了一个奇怪的错误。 至少对于那些在此之前从未使用过这些课程的人来说。 开始执行此操作 private static GameView window; private static Timer time; public static void main(String args[]) { window = new GameView(800,600); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setVisible(true); time = new Timer(); time.schedule( new TimerTask(){ public void run(){GameState.update(); window.paintComponents(null);} },0, 40); } 这称之为: public void paintComponents (Graphics g) { for(Bullet j : GameState.getEnBullets()){ g.drawImage(j.getImage(),j.getX(), j.getY(), null);} for(Enemy j : GameState.getEnemies()){ […]