diff --git a/pom.xml b/pom.xml
index 30ef907..3347f94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
info.istlab.IoTP
IoTP
jar
- 0.53
+ 0.54
IoTP
http://maven.apache.org
diff --git a/src/main/java/info/istlab/IoTP/App.java b/src/main/java/info/istlab/IoTP/App.java
index 1397bbc..5a4611a 100644
--- a/src/main/java/info/istlab/IoTP/App.java
+++ b/src/main/java/info/istlab/IoTP/App.java
@@ -18,6 +18,8 @@
import java.security.ProtectionDomain;
import java.util.ArrayList;
+import javax.swing.SwingUtilities;
+
/**
* Hello world!
*
@@ -66,7 +68,9 @@
System.exit(0);
workingDir = ret.getAbsolutePath();
System.out.println(ret);
- new Launcher(ret).setVisible(true);
+ SwingUtilities.invokeLater(() -> {
+ new Launcher(ret).setVisible(true);// SwingUtilities
+ });
}
public static void findDotGitFileRecursive(File dir, ArrayList iotDirs, int level) {
diff --git a/src/main/java/info/istlab/IoTP/Editor.java b/src/main/java/info/istlab/IoTP/Editor.java
index ee48c3b..addbbd5 100644
--- a/src/main/java/info/istlab/IoTP/Editor.java
+++ b/src/main/java/info/istlab/IoTP/Editor.java
@@ -28,6 +28,7 @@
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -169,9 +170,11 @@
getContentPane().add(topP, BorderLayout.NORTH);
- setVisible(true);
- textArea.requestFocus();
- textArea.setCaretPosition(0);
+ SwingUtilities.invokeLater(() -> {
+ setVisible(true);// SwingUtilities
+ textArea.requestFocus();
+ textArea.setCaretPosition(0);
+ });
lastOpened = this;
}
diff --git a/src/main/java/info/istlab/IoTP/JTAConsole.java b/src/main/java/info/istlab/IoTP/JTAConsole.java
index 7f078fa..caee4a3 100644
--- a/src/main/java/info/istlab/IoTP/JTAConsole.java
+++ b/src/main/java/info/istlab/IoTP/JTAConsole.java
@@ -22,6 +22,7 @@
import java.util.Stack;
import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
import javax.swing.text.BadLocationException;
import org.fife.ui.rtextarea.RTextScrollPane;
@@ -63,7 +64,9 @@
winStack.push(this);
originalContent = new StringBuilder();
- frame.setVisible(true);
+ SwingUtilities.invokeLater(()-> {
+ frame.setVisible(true); // SwingUtilities
+ });
}
public void Systemoutprintln(String s) {
diff --git a/src/main/java/info/istlab/IoTP/Launcher.java b/src/main/java/info/istlab/IoTP/Launcher.java
index 4a7a04a..1541564 100644
--- a/src/main/java/info/istlab/IoTP/Launcher.java
+++ b/src/main/java/info/istlab/IoTP/Launcher.java
@@ -31,7 +31,7 @@
public class Launcher extends JFrame implements MouseInputListener, KeyListener, Runnable {
public static Launcher theapp;
- public static String version = "0.53";
+ public static String version = "0.54";
static int reboot_msec = 2000;
// JPanel mainP;
File root;
diff --git a/src/main/java/info/istlab/IoTP/MqttWindow.java b/src/main/java/info/istlab/IoTP/MqttWindow.java
index e925722..f1258e1 100644
--- a/src/main/java/info/istlab/IoTP/MqttWindow.java
+++ b/src/main/java/info/istlab/IoTP/MqttWindow.java
@@ -23,6 +23,7 @@
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
@@ -123,7 +124,9 @@
setSize(600, 500);
setLocation(centerOfScreen(getSize()));
- setVisible(true);
+ SwingUtilities.invokeLater(() -> {
+ setVisible(true);// SwingUtilities
+ });
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jtf.addActionListener(this);
addWindowListener(this); // Xをおしたらserial closeする
diff --git a/src/main/java/info/istlab/IoTP/SerialWindow.java b/src/main/java/info/istlab/IoTP/SerialWindow.java
index 5455239..232a15f 100644
--- a/src/main/java/info/istlab/IoTP/SerialWindow.java
+++ b/src/main/java/info/istlab/IoTP/SerialWindow.java
@@ -21,6 +21,7 @@
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
import com.fazecast.jSerialComm.SerialPort;
import com.fazecast.jSerialComm.SerialPortDataListener;
@@ -74,6 +75,7 @@
// }
}
+ static SerialWindow swin;
public static void invoke(boolean popup_if_zero) {
if (serialChecker == null)
serialChecker = Launcher.theapp.serialChecker;
@@ -83,13 +85,15 @@
JOptionPane.showMessageDialog(Launcher.theapp, "No available serial ports.");
return;
}
- SerialWindow swin = hash.get(App.serialName);
+ swin = hash.get(App.serialName);
if (swin == null) {
SerialPort sp = serialChecker.portHash.get(App.serialName);
swin = new SerialWindow(sp);
} else {
- swin.setVisible(true);
- swin.reconnect();
+ SwingUtilities.invokeLater(() -> {
+ swin.setVisible(true); //SwingUtilities
+ swin.reconnect();
+ });
}
// SerialPort[] ports = SerialPort.getCommPorts();
// ArrayList splist_valid = new ArrayList();
@@ -158,7 +162,9 @@
setSize(500, 400);
setLocation(centerOfScreen(getSize()));
- setVisible(true);
+ SwingUtilities.invokeLater(() -> {
+ setVisible(true);// SwingUtilities
+ });
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // この下のWindowListenerで処理する
jtf.addActionListener(this);
addWindowListener(this); // Xをおしたらserial closeする
@@ -326,8 +332,10 @@
SerialPort sp = ent.getValue();
if (hash.get(key) != null) {
SerialWindow swin = hash.get(key);
- swin.setVisible(true);
- swin.reconnect();
+ SwingUtilities.invokeLater(() -> {
+ swin.setVisible(true); //SwingUtilities
+ swin.reconnect();
+ });
} else {
new SerialWindow(sp);
}