Java GUI JProgressBar没有绘画

我有一个GUI问题,我想整理出来,但我对发生的事情感到困惑,希望你们中的一个人能解释一下。 代码库太大而无法上传,但我会详细解释发生了什么: 我有一个ProgessBar类,它是一个包含swing JProgressBar的JDialog 。 我有一些吸气剂和制定者可以根据自己的喜好改变标准,但问题就出现了。 ProgressBar是在myButtonActionPerformed方法中生成的 myButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { myButtonActionPerformed(evt); } }); 基本上当用户点击此按钮时,处理开始并生成ProgressBar 。 用户当前在它们前面有一个JFrame ,这个进度条在JDialog弹出。 在Netbeans中逐步调试模式后,我可以看到JProgressBar的值发生了变化,但是当我的程序正在处理时,条形图在视觉上保持在0%,然后在它离开上面的添加动作侦听器方法时立即跳转到100%,几乎就好像等待重新画画一样,直到那个听众。 我不明白的是什么? 有什么我可以调用它会强制它在这个myButtonActionPerformed方法内更新,而不是等到它没用。

TreeMap 删除不起作用

我试图通过执行这个循环来获取TreeMap的前10个元素: TreeMap sortedMap = sortMap(m); String outString = “”; int count = 10; while (count > 0) { count–; Integer k = sortedMap.firstKey(); outString += String.valueOf(k); sortedMap.remove(k); if (count != 0) { outString += “,”; } } System.out.println(“outVal is ” + outVal); 这打印outVal is 11377,11377,11377,11377,11377,11377,11377,11377,11377,11377 Integer实现Comparable ,所以为什么可能remove不工作? 更新这是我的sortMap实现: public static TreeMap sortMap(HashMap map) { ValueComparator […]

如何使用Java压缩PNG图像

嗨,我想知道Java中是否有任何方法可以减少作为BufferedImage加载的图像大小(使用任何类型的压缩),并将保存为PNG。 也许某种png imagewriteparam? 我没有找到任何有用的东西,所以我卡住了。 下面是一个示例如何加载和保存图像 public static BufferedImage load(String imageUrl) { Image image = new ImageIcon(imageUrl).getImage(); bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g2D = bufferedImage.createGraphics(); g2D.drawImage(image, 0, 0, null); return bufferedImage; } public static void storeImageAsPng(BufferedImage image, String imageUrl) throws IOException { ImageIO.write(image, “png”, new File(imageUrl)); }

使用Spring-Data Elasticsearch在Elasticsearch中动态创建索引名称

我有一个用例,需要在Elasticsearch中每月创建索引。 我们的想法是在月度基础上创建指数,以便它们易于维护,并且可以在过期时删除。为此我要使用春季批次并且每月工作将创建每月基数的指数对于Elasticsearch -Java集成我使用了Spring-Data Elasticsearch实现。 我现在面临的问题是,我无法弄清楚如何使用Entity对象为索引和映射提供动态名称。 我目前的实施完成时要记住单一索引。 请找到以下用于创建索引的代码 elasticsearchTemplate.createIndex(SingleChat.class); elasticsearchTemplate.putMapping(SingleChat.class); elasticsearchTemplate.refresh(SingleChat.class, true); 而SingleChat是我的实体类 @Document(indexName=”singlemsgtemp_#{jobParameters[‘MONTH’]}”,type=”singlechat”) public class SingleChat { @org.springframework.data.annotation.Id String Id; @Field(type = FieldType.String) String conservationId; @Field(type = FieldType.String) String from; @Field(type = FieldType.String) String to; @Field(type = FieldType.String) String msgContent; @Field(type = FieldType.String) String sessionId; @Field(type = FieldType.Date, index = FieldIndex.not_analyzed, store = true, format […]

Uva的3n + 1问题

我正在解决Uva的3n + 1问题,我不明白为什么法官拒绝我的回答。 时间限制尚未超过,我尝试过的所有测试用例到目前为止都运行正常。 import java.io.*; public class NewClass{ /** * @param args the command line arguments */ public static void main(String[] args) throws IOException { int maxCounter= 0; int input; int lowerBound; int upperBound; int counter; int numberOfCycles; int maxCycles= 0; int lowerInt; BufferedReader consoleInput = new BufferedReader(new InputStreamReader(System.in)); String line = consoleInput.readLine(); String […]

从Java中的另一个线程更新JTextField

我正在制作一个游戏客户端/服务器,我正在新的线程更新客户端GUI上的一些信息(使用Swing)。 我正在尝试使用SwingUtilities但它不起作用。 另外,我听说SwingUtilities每次使用它时都会创建一个新线程,所以我也在寻找一种新方法(我有10个左右的JTextFields需要更新)。 有没有办法在不使用SwingUtilities的情况下完成? 这就是我现在所拥有的。 SwingUtilities.invokeLater( new Runnable() { public void run() { Client.status.setText(“status = “+status); } });

摇摆计时器不停止

我正在使用swing计时器在Netbeans中制作一个倒计时时钟: public void startTimer() { System.out.println(right + “value”); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent event) { System.out.println(“action”); timerLabel.setText(“” + seconds); –seconds; System.out.println(seconds); if (seconds == -1 && seconds < 0) { System.out.print("zero"); //displayTimer.stop(); wrong(); dispose(); } } }; displayTimer = new Timer(1000, listener); displayTimer.setInitialDelay(100); displayTimer.start(); if (right == null) { System.out.println("null"); […]

Java Swing – 在EDT上运行

关于Swing和使用EDT进行GUI更新,我有几个问题。 我刚刚开始阅读这些内容,所以我是这个领域的初学者: 在EDT上运行需要哪些操作? 如果他们不这样做,只是提出exception? 我们实际上在EDT上是否有任何特定的时间? 如果我们使用SingUtilities.invokeLater计划任务,我们将它排入GUI更新任务的当前队列吗? 访问上面的队列我猜是同步的,或者使用了一些并发集合,但如果我从两个后台线程安排两个GUI更新任务,就不可能说先添加哪一个? 例如,如果线程1 FIRST提交了将JLable的文本设置为“是”的任务,然后,短时间后,第二个线程出现并提交将该值设置为“no”的任务,我们是否保证结果将是“是”,或者仅仅是操作系统如何安排这些事情的问题? SwingWorker究竟如何确保在EDT上运行done()方法? 它设置以下代码: future = new FutureTask(callable) { @Override protected void done() { doneEDT(); setState(StateValue.DONE); } }; 所以我想知道FutureTask是否确保调用invokeLater ? 谢谢你的所有答案。

如何在继续之前等待JFrame关闭?

我的程序包含3个主要“部分”。 主要function,登录表格和App表格。 主要function应该是这样的:打开登录表单,等待它关闭,然后打开App表单。 我不能让等待的部分工作,或者更确切地说,我不知道如何去做这件事。 有人告诉我使用JDialog而使用setModal(true) ,但是使用这种方法,Login表单不会出现在任务栏上,这在我看来很糟糕。 我考虑的另一件事是在关闭后从Login内部打开应用程序,但这感觉就像糟糕的设计,因为这会使登录表单不可重用。 那么,拜托,你会建议什么?

Spring Boot Maven插件 – 没有BOOT-INF目录

在spring-boot-maven-plugin的版本1.3.8.RELEASE和版本1.4.0.RELEASE之间 – 生成的包结构发生了变化(如果你提取uber jar文件)1.3.8.RELEASE com, lib,META-INF和org目录1.4.0.RELEASE有一个BOOT-INF,META-INF和org目录,基本上是从1.4.0.RELEASE开始 – 所有的类和库都在BOOT-INF目录中。 由于这个原因 – 当你尝试在Amazon Lambda上运行一个Spring Boot项目时 – 它说没有找到一个jar,因为它无法读取新的Spring Boot Uber jar结构 我的问题是 – 是否有可能在较新版本的Spring Boot Maven插件中生成uber jar,使其与版本1.3.9.RELEASE中的结构相同? 我尝试了maven-shade-plugin – 但这导致了其他问题 任何帮助是极大的赞赏 谢谢Damien