在调用方法和JOptionPane之后允许代码继续执行所需的定时器或其他想法

我需要一种方法来允许我的程序在调用此方法后继续运行代码。 目前,它等待半小时,获取信息,将其存储到对象WeatherCard,并显示它,然后重复。 但它挂在JOptionPane上。 我需要一种方法来使程序保持在JOptionPane下面或在大约10秒后关闭窗格。 我目前还不确定如何使用我的代码 public void printWeatherCard(WeatherCard w, JFrame controlFrame) throws MalformedURLException, IOException{ /* Displays a dialog box containing the temperature and location */ BufferedImage img = ImageIO.read(new URL(w.imgSrc)); ImageIcon icon = new ImageIcon(img); JOptionPane.showMessageDialog(controlFrame, “It is currently ” + w.currentTemp + ” \u00B0 F in ” + w.location.city + “, ” + w.location.state […]

Java线程:等待并通知方法

我有一个调用wait方法的线程,只能在从其他类调用notify方法时唤醒: class ThreadA { public static void main(String [] args) { ThreadB b = new ThreadB(); b.start(); synchronized(b) { try { System.out.println(“Waiting for b to complete…”); b.wait(); } catch (InterruptedException e) {} System.out.println(“Total is: ” + b.total); } } } class ThreadB extends Thread { int total; public void run() { synchronized(this) { for(int i=0;i<100;i++) […]

Java按钮暂停图形更新

所以我有一个class级,我必须制作一个程序来制作西蒙。 我知道我这样做的方式不一定是最好的方式,但是,他有一些模糊的要求,所以这就是我这样做的原因。 我的程序即将完成,但我有一个主要问题。 当我按下重置按钮时,我调用一个名为reset的方法,该方法又将计算机设置为进行第一步。 在此期间,有图形更新。 当我单独调用reset方法时,它按预期工作当我按下重置按钮时,它会完成所有图形更新。 有没有办法在按下按钮后运行方法? 我的主要计划 package game; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; import components.*; @SuppressWarnings(“serial”) public class Simonish extends JFrame implements ActionListener, MouseListener { private Color[][] ColorSwatch = {{Color.RED,Color.PINK},{Color.GREEN,Color.YELLOW}}; private int width = 2; private int height […]

MVC如何使用java swing GUI

假设我有一个带有textfeild和按钮的swing GUI。 当我单击按钮时,我想将该值保存在db中的文本中并返回joptionpane“success”消息。 我以前这样做的方式是 型号 :JDBC类 查看 :GUI:在该按钮的“ 动作执行 ”动作中,我使用参数调用save方法。 Controller con = new Controller(); con.save(text1.getText()); 控制器 :编写保存方法。 JDBC db = new public void save(jTextfeild text){ text= text1.getText(); boolean b= db.putData(“insert into .. values(text)”); if(b){ JOptionPane(“Success”); } } 这就是我的开始。 但后来我明白这不应该是这样的,这是完全不安全和愚蠢的。 我真的想学习如何在MVC中正确地做到这一点。 请用一个小例子来解释这个问题。 感谢您的时间。

String和StringBuilder之间的Java .equals

class returntest { public static void main(String…args) { String name1 = “Test”; String s = new String(“Test”); StringBuilder sb = new StringBuilder(“Test”); System.out.println(name1.equals(sb)); //Line 1 System.out.println(name1.equals(s)); //Line 2 System.out.println(s.equals(sb)); // Line 3 System.out.println(s.equals(name1)); //Line 4 } } 以下是输出 false true false true 第1行返回,第3行返回false。 我不明白为什么编译器不认为“name1”和“sb”包含相同的值 类似地,编译器不认为“s”和“sb”包含相同的字符串(两者都是非基元)。 有人可以解释line1和line3输出吗?

AES / CBC / PKCS5Padding与AES / CBC / PKCS7Padding具有256个密钥大小的性能java

我目前正在使用AES/CBC/PKCS5Padding来加密具有256字节密钥大小的Java文件,但是我在stackexchange PKCS#5-PKCS#7 Padding上找到了搜索,并且提到了, PKCS#5填充是PKCS#7填充的子集,用于8字节块大小 所以我想知道 对于上述配置, AES/CBC/PKCS7Padding的性能AES/CBC/PKCS7Padding会优于AES/CBC/PKCS5Padding ? 我们如何在Java中配置块大小,如上所述 PKCS#7填充适用于1到255字节的任何块大小。 我的示例代码是, SecureRandom rnd = new SecureRandom(); IvParameterSpec iv = new IvParameterSpec(rnd.generateSeed(16)); KeyGenerator generator = KeyGenerator.getInstance(“AES”); generator.init(256); SecretKey k = generator.generateKey(); Cipher c = Cipher.getInstance(“AES/CBC/PKCS5Padding”); c.init(Cipher.ENCRYPT_MODE, k, iv);

重载方法如何工作?

public class Test1 { public static void main(String[] args) { Test1 test1 = new Test1(); test1.testMethod(null); } public void testMethod(String s){ System.out.println(“Inside String Method”); } public void testMethod(Object o){ System.out.println(“Inside Object Method”); } } 当我尝试运行给定的代码时,我得到以下输出: 内部字符串方法 任何人都可以解释为什么调用String类型参数的方法?

Java一行变量声明?

在我的Java类中,我正在声明这样的变量 BigDecimal sumFeeBilled = new BigDecimal(0), sumPaid = new BigDecimal(0); 或者我们必须在多行中声明这样 BigDecimal sumFeeBilled = new BigDecimal(0); BigDecimal sumPaid = new BigDecimal(0); 我们应该遵循哪一个?

JavaFX – setOnAction不适用

我正在尝试学习JavaFX,并且我已经编写了下面显示的代码,但是我似乎遇到了这行代码的问题: btn.setOnAction(new EventHandler() 它下划线setOnAction,并打印此错误: The method setOnAction(EventHandler) in the type ButtonBase is not applicable for the arguments (new EventHandler(){}) import java.awt.event.ActionEvent; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Test extends Application{ public static void main(String[] args){ launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle(“Hello World!”); Button btn […]

不能使用Scanner类,构造函数未定义,方法未定义

当我想在我的项目eclipse中导入扫描器类时,向我展示一些错误: Exception in thread “main” java.lang.Error: Unresolved compilation problems: The constructor Scanner(InputStream) is undefined The method nextLine() is undefined for the type Scanner 这是我的代码: import java.util.Scanner; public class Scanner { public static void main(String[] args) { Scanner myScanner = new Scanner(System.in); System.out.println(myScanner.nextLine()); } }