Tag: thread sleep

读取日志文件并在jTextArea中显示

我正在尝试读取动态更改的文件并在jTextArea中显示其内容。 我正在使用缓冲读卡器进行阅读。 我试图在控制台上显示内容,它工作正常,但不适用于jTextArea。 我正在做类似的事情 while(true) { line = br.readLine(); if(line == null) Thread.sleep(); else System.out.println(line); } 任何帮助,将不胜感激。 谢谢

在循环中更改图像 – Android

我想知道为什么我仍然无法想办法做到这一点。 虽然看起来很简单,但我花了整整一天的时间。 但不能这样做。 我有一组骰子图像。 1.png,2.png,….和6.png。 我的布局中有一个ImageView。 那是, ImageView dice = (ImageView) findViewById(R.id.imageViewrollingdiceOne); 在这里,我想快速更改此imageView以查看使用6个以上图像的某种视觉/动画。 为此我写下了一段代码。 代码1: for (int j=0;j<10;j++){ int randomNum = random.nextInt(6); System.out.println("Random Value " + randomNum); dice.setImageResource(images[randomNum]); } 输出: 没有视觉效果。 imageView保持不变,并在循环最后一次迭代时突然改变。 我认为这是因为循环执行速度非常快。 然后我做了以下。 代码2: for (int j=0;j<10;j++){ int randomNum = random.nextInt(6); System.out.println("Random Value " + randomNum); dice.setImageResource(images[randomNum]); try { Thread.sleep(200); } catch (InterruptedException e) […]

停止代码,直到满足条件

如何创建一个函数或组件等,在满足条件之前停止所有正在运行的代码? 例如,与JOptionPane相同的方式,如果我有这样的例子: JOptionPane.showInputDialog(null, “Hello”, “Title”, 1); 在函数等中然后打印到控制台之后它将不会打印,直到我关闭JOptionPane。 我猜这个组件有内置的某种线程设置,但我怎么能用我自己的函数复制它? 所以说例如我想让JFrames延迟一切,直到它被关闭,所以它就像一个JOptionPane。 或者例如有一个具有多个输入的函数,这些函数已经更新,并且在内部对它进行了一些数学计算,如果它是某个值返回了一个布尔值,但是除了那些之外的其他所有内容都被暂停,直到返回真正的布尔值。 我猜测解决方案是某种线程设置,但我对Java很新,当我在过去编码时,我还没有真正使用过线程,所以我无法创建一个好的停止 – 启动/暂停 – 运行样式function系统。 有没有人有任何建议如何实现这个或更好的代码示例显示这种类型的东西工作?

如何逐个绘制图像?

class DrawIma extends JPanel{ protected void paintComponent(Graphics g) { super.paintComponent(g); for (int i=0;i<20;i++){ for (int j=0;j<20;j++) { g.drawImage(BuArr[i*20+j], 20*i, 20*j, 20, 20, null); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } } } 在这部分中, BuArr是从BufferedImage划分的400个块 ,现在我希望它们逐个绘制,但是方法不能单独绘制块,我该怎么做?

Swing JForm冻结直到动作完成

我想创建一个Java应用程序,使用swing组件可视化合并排序。 到目前为止我写的这个: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; public class MergeSort extends JFrame { private int[] helper; private int[] heights; private JPanel mainPanel; private JTextArea[] areas; private JTextArea txtSpeed; private JLabel lblSpeed; private JButton btnStart; private Random rnd; private final int FRAME_HEIGHT = 550; private […]

JProgressBar无法正常工作

所以我设置的JProgressBar不按我想要的方式工作。 因此,每当我运行程序时,它立即从0变为100。 我尝试使用ProgressMonitor ,一个任务,并尝试了一个SwingWorker但我没有尝试过。 这是我的计划: int max = 10; for (int i = 0; i <= max; i++) { final int progress = (int)Math.round( 100.0 * ((double)i / (double)max) ); EventQueue.invokeLater(new Runnable() { @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(BandListGenerator.class.getName()).log(Level.SEVERE, null, ex); } jProgressBar2.setValue(progress); } }); } @MadProgrammer这是我尝试制作一个摇摆工作者并将每个名字写入文档并更新进度条。 […]

Java全屏背景颜色不会改变?

我有一些代码在java中创建一个全屏图标,并将背景颜色设置为粉红色,将前景颜色设置为红色。 然而,每次我运行它,它永远不会将背景颜色更改为红色,但只是保持透视。 我把代码放在下面。 主要java: import java.awt.*; import javax.swing.*; @SuppressWarnings({ “serial” }) public class bob extends JFrame{ public static void main(String[] args) { DisplayMode dm = new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN); bob b = new bob(); b.run(dm); } public void run(DisplayMode dm){ setBackground(Color.PINK); setForeground(Color.RED); setFont(new Font(“Arial”, Font.PLAIN, 24)); screen s = new screen(); try{ s.setFullScreen(dm, this); try{ Thread.sleep(5000); […]

覆盖Thread.sleep()

我们有几个扩展基类的类。 我们注意到我们使用退出一些睡眠方法,我们想在睡眠发生时记录。 有没有办法覆盖Thread.sleep方法,我可以在其中添加一些自定义逻辑(即日志记录),然后只调用实际的Thread.sleep()? 这样我就不必更改Thread.sleep在我的基类中使用的所有地方。 我也对其他选择持开放态度。

Thread.sleep()VS Executor.scheduleWithFixedDelay()

目标:每隔一段时间执行一次代码。 问题:在性能方面,是否存在显着差异: while(true) { execute(); Thread.sleep(10 * 1000); } 和 executor.scheduleWithFixedDelay(runnableWithoutSleep, 0, 10, TimeUnit.SECONDS); ? 当然,后一种选择更犹豫不决。 然而,我想知道我是否应该开始一项名为“花几天时间重构遗留代码以告别Thread.sleep()”的冒险。 更新:此代码在超级/超级/超高负载环境中运行。

动态地向JTable添加行 – 为什么它们一次出现?

在这个例子中,我试图在我的GUI中添加一个表,然后动态地向其添加行(以显示进度)。 我不明白的是为什么所有的行都会立刻出现。 我的意思是,桌子的变化,不是吗? 有人可以给我一个解释吗? import java.awt.Component; public class Main { public static void main(String[] args) { // Show GUI java.awt.EventQueue.invokeLater(new Runnable() { public void run() { GUI gui = new GUI(); gui.setVisible(true); DefaultTableModel model = new DefaultTableModel( new String[] { “Column 1”, “Column 2” }, 0); JTable table = new JTable(model); gui.add(table); gui.validate(); for (int […]