diff --git a/src/main/java/istlab/KisoJikken/App.java b/src/main/java/istlab/KisoJikken/App.java index 9980c9a..57690fc 100644 --- a/src/main/java/istlab/KisoJikken/App.java +++ b/src/main/java/istlab/KisoJikken/App.java @@ -53,6 +53,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()); + } + }); + try { App.execPath = getApplicationPath(new App().getClass()); } catch (URISyntaxException e) { @@ -85,7 +93,7 @@ UIManager.setLookAndFeel(laf); } catch (Exception e) { /* Never happens */ } - new Launcher(args).setVisible(true); + new Launcher(args).setVisible(true);//SwingUtilities }); } diff --git a/src/main/java/istlab/KisoJikken/Editor.java b/src/main/java/istlab/KisoJikken/Editor.java index 7ba3219..2274c05 100644 --- a/src/main/java/istlab/KisoJikken/Editor.java +++ b/src/main/java/istlab/KisoJikken/Editor.java @@ -27,6 +27,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; @@ -140,10 +141,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/istlab/KisoJikken/JTAConsole.java b/src/main/java/istlab/KisoJikken/JTAConsole.java index 0e633f9..4c368ea 100644 --- a/src/main/java/istlab/KisoJikken/JTAConsole.java +++ b/src/main/java/istlab/KisoJikken/JTAConsole.java @@ -26,6 +26,7 @@ import javax.swing.JFrame; import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; import javax.swing.text.BadLocationException; import org.fife.ui.rtextarea.RTextScrollPane; @@ -64,7 +65,6 @@ frame = new JFrame(title); frame.getContentPane().add(new RTextScrollPane(this)); frame.setSize(500, win_height); - frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); frame.addWindowListener(this); if (winStack.size() > 0) { @@ -86,6 +86,9 @@ winStack.push(this); originalContent = new StringBuilder(); + SwingUtilities.invokeLater(() -> { + frame.setVisible(true);// SwingUtilities + }); } public void Systemoutprintln(String s) { diff --git a/src/main/java/istlab/KisoJikken/Launcher.java b/src/main/java/istlab/KisoJikken/Launcher.java index 68eb38d..56f9ca5 100644 --- a/src/main/java/istlab/KisoJikken/Launcher.java +++ b/src/main/java/istlab/KisoJikken/Launcher.java @@ -23,6 +23,7 @@ import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTree; +import javax.swing.SwingUtilities; import javax.swing.event.MouseInputListener; import javax.swing.tree.TreePath; @@ -106,40 +107,37 @@ mi = new JMenuItem("NWPフォルダの変更状況確認"); mi.addActionListener(ae -> { try { - gitrepom.checkClean(false); - } catch (NoWorkTreeException e) { - e.printStackTrace(); - } catch (GitAPIException e) { - e.printStackTrace(); - } + gitrepom.checkClean(false); + } catch (NoWorkTreeException e) { + e.printStackTrace(); + } catch (GitAPIException e) { + e.printStackTrace(); + } }); menu.add(mi); mi = new JMenuItem("NWPフォルダを最新にする(git pull)"); mi.addActionListener(ae -> { try { - gitrepom.pull(); - } catch (NoWorkTreeException e) { - e.printStackTrace(); - } catch (GitAPIException e) { - e.printStackTrace(); - } + gitrepom.pull(); + } catch (NoWorkTreeException e) { + e.printStackTrace(); + } catch (GitAPIException e) { + e.printStackTrace(); + } }); menu.add(mi); - menu.addSeparator(); mi = new JMenuItem("Launcherを再起動する"); mi.addActionListener(ae -> restart()); menu.add(mi); - mi = new JMenuItem("Launcherを終了"); mi.addActionListener(ae -> System.exit(0)); menu.add(mi); - // mi = new JMenuItem("NWPフォルダの再取得(または初期状態に戻す)"); // mi.addActionListener(ae -> App.getNWPifnotexist(true)); // menu.add(mi); @@ -158,9 +156,9 @@ // lsof -i -n -P | grep java mi = new JMenuItem("Javaが開いているポートの確認"); mi.addActionListener(ae -> { - JOptionPane.showInputDialog(Launcher.theapp, "Javaプログラムが開いているポートを確認するには\n" + - "お手数ですが、ターミナルで以下を入力してください。\n\n" + - "(コピーしやすさを考慮し、テキストフィールドに表示しています)", + JOptionPane.showInputDialog(Launcher.theapp, "Javaプログラムが開いているポートを確認するには\n" + + "お手数ですが、ターミナルで以下を入力してください。\n\n" + + "(コピーしやすさを考慮し、テキストフィールドに表示しています)", "lsof -i -n -P | grep java"); }); menu.add(mi); @@ -223,6 +221,7 @@ reloadFiles(); } } + public void restart() { reboot_msec = 0; App.reboot(App.execPath.toString()); @@ -232,6 +231,7 @@ System.out.println(cmd); new CommandRunner(cmd, chdir).startstop(); } + public void runCommand(String cmd, String chdir, int wheight) { System.out.println(cmd); new CommandRunner(cmd, chdir, wheight).startstop(); @@ -311,6 +311,7 @@ } } + Editor ed; private void openEditor() { TreePath tp = tree.getSelectionModel().getSelectionPath(); if (tp == null) @@ -319,14 +320,16 @@ // フォルダなら開かない if (node.isDirectory()) return; - Editor ed = file2editor.get(node); + ed = file2editor.get(node); if (ed == null) { ed = new Editor(node); file2editor.put(node, ed); - } else { - ed.setVisible(true); - ed.toFront(); } + SwingUtilities.invokeLater(() -> { + ed.setVisible(true); // SwingUtilities + ed.toFront(); + }); + System.out.println(node.toString()); } @@ -396,5 +399,4 @@ System.exit(0); } - } diff --git a/src/main/java/istlab/KisoJikken/Test/AfterRewrite.php b/src/main/java/istlab/KisoJikken/Test/AfterRewrite.php old mode 100644 new mode 100755