diff --git a/src/main/java/info/istlab/ServerTester/App.java b/src/main/java/info/istlab/ServerTester/App.java index ec5107a..85958d7 100644 --- a/src/main/java/info/istlab/ServerTester/App.java +++ b/src/main/java/info/istlab/ServerTester/App.java @@ -21,6 +21,14 @@ } public static void main(String[] args) { + Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { + @Override + public void uncaughtException(Thread t, Throwable e) { + // 例外をログに書き出したり、無視したりできます + // System.err.println("Uncaught exception: " + e.getMessage()); + } + }); + Class clazz = App.class; // Mainクラスを指定 String location = clazz.getProtectionDomain().getCodeSource().getLocation().getPath(); isJAR = location.endsWith(".jar"); diff --git a/src/main/java/info/istlab/ServerTester/Host.java b/src/main/java/info/istlab/ServerTester/Host.java index 23233d1..23cc9e0 100644 --- a/src/main/java/info/istlab/ServerTester/Host.java +++ b/src/main/java/info/istlab/ServerTester/Host.java @@ -38,11 +38,8 @@ add(addPanel, BorderLayout.NORTH); mainhost = this; // udpServer = new UDPServer(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - setVisible(true); - } + SwingUtilities.invokeLater(() -> { + setVisible(true); }); } diff --git a/src/main/java/info/istlab/ServerTester/JTAConsole.java b/src/main/java/info/istlab/ServerTester/JTAConsole.java index eaf2e05..d8e4f44 100644 --- a/src/main/java/info/istlab/ServerTester/JTAConsole.java +++ b/src/main/java/info/istlab/ServerTester/JTAConsole.java @@ -163,7 +163,9 @@ // if (!process.isAlive()) { // // Launcher.allProcs.remove(process); // } - frame.setVisible(false); + SwingUtilities.invokeLater(() -> { + frame.setVisible(false); + }); } @Override diff --git a/src/main/java/info/istlab/ServerTester/MulticastReceiver.java b/src/main/java/info/istlab/ServerTester/MulticastReceiver.java index 175ac26..91e1a21 100644 --- a/src/main/java/info/istlab/ServerTester/MulticastReceiver.java +++ b/src/main/java/info/istlab/ServerTester/MulticastReceiver.java @@ -9,6 +9,8 @@ import java.nio.channels.DatagramChannel; import java.util.Hashtable; +import javax.swing.SwingUtilities; + public class MulticastReceiver implements Runnable { Thread thread; // MulticastSocket socket; @@ -90,7 +92,9 @@ if (remoteHostsWindow != null) { remoteHostsWindow.autoPack = true; remoteHostsWindow.packIfNotResized(); - remoteHostsWindow.frame.setVisible(true); + SwingUtilities.invokeLater(() -> { + remoteHostsWindow.frame.setVisible(true); + }); } else { remoteHostsWindow = new RemoteHostsWindow(receivedData); } diff --git a/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java b/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java index ee36785..95554c1 100644 --- a/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java +++ b/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java @@ -15,6 +15,7 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; public class RemoteHostsWindow extends JPanel implements Runnable{ JTabbedPane tabbedPane; @@ -85,7 +86,9 @@ } frame.pack(); frame.setLocation(Host.mainhost.nextTo(10,10)); - frame.setVisible(true); + SwingUtilities.invokeLater(() -> { + frame.setVisible(true); + }); } } diff --git a/src/main/java/info/istlab/ServerTester/Server.java b/src/main/java/info/istlab/ServerTester/Server.java index 3e995c3..f12c99d 100644 --- a/src/main/java/info/istlab/ServerTester/Server.java +++ b/src/main/java/info/istlab/ServerTester/Server.java @@ -98,6 +98,12 @@ } public String getBindAddress() { + if (serverSocket == null) { + return "/null"; + } + if (serverSocket.getInetAddress() == null) { + return "/null"; + } return serverSocket.getInetAddress().toString(); } diff --git a/src/main/java/info/istlab/ServerTester/ServerPanel.java b/src/main/java/info/istlab/ServerTester/ServerPanel.java index 3dc2d3b..e9e1e8c 100644 --- a/src/main/java/info/istlab/ServerTester/ServerPanel.java +++ b/src/main/java/info/istlab/ServerTester/ServerPanel.java @@ -64,7 +64,7 @@ }); delButton = new JButton("Delete"); - delButton.setEnabled(false); + delButton.setEnabled(true); delButton.addActionListener(e -> { server.close(); Host.mainhost.mainPanel.remove(this); diff --git a/src/main/java/info/istlab/ServerTester/WhiteBoardClient.java b/src/main/java/info/istlab/ServerTester/WhiteBoardClient.java index fd14885..863f3e4 100644 --- a/src/main/java/info/istlab/ServerTester/WhiteBoardClient.java +++ b/src/main/java/info/istlab/ServerTester/WhiteBoardClient.java @@ -18,6 +18,7 @@ import javax.swing.JFrame; import javax.swing.JPanel; +import javax.swing.SwingUtilities; public class WhiteBoardClient extends JPanel implements MouseListener, MouseMotionListener, Runnable { private static final long serialVersionUID = 1L; @@ -51,7 +52,9 @@ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600, 400); frame.add(this); - frame.setVisible(true); + SwingUtilities.invokeLater(() -> { + frame.setVisible(true); + }); System.out.println("Client socket info: " + socket.toString());