java.awt.EventQueue#invokeAndWait()源码实例Demo

下面列出了java.awt.EventQueue#invokeAndWait() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: zap-extensions   文件: ExtensionWappalyzer.java
@Override
public void sessionChanged(final Session session) {
    if (getView() == null) {
        return;
    }

    if (EventQueue.isDispatchThread()) {
        sessionChangedEventHandler(session);

    } else {
        try {
            EventQueue.invokeAndWait(
                    new Runnable() {
                        @Override
                        public void run() {
                            sessionChangedEventHandler(session);
                        }
                    });
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }
    }
}
 
源代码2 项目: jdk8u60   文件: TransformedPaintTest.java
public static void main(String[] args) throws
    InterruptedException, InvocationTargetException
{
    boolean show = (args.length > 0 && "-show".equals(args[0]));

    final TransformedPaintTest t = new TransformedPaintTest();
    if (show) {
        EventQueue.invokeAndWait(new Runnable() {
            public void run() {
                showFrame(t);
            }
        });
    } else {
        t.runTest();
    }
}
 
源代码3 项目: netbeans   文件: TimableEventQueueTest.java
public void testDispatchEvent() throws Exception {
    class Slow implements Runnable {
        private int ok;
        @Override
        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Exceptions.printStackTrace(ex);
            }
            ok++;
        }
    }
    Slow slow = new Slow();
    
    EventQueue.invokeAndWait(slow);
    EventQueue.invokeAndWait(slow);
    TimableEventQueue.RP.shutdown();
    TimableEventQueue.RP.awaitTermination(3, TimeUnit.SECONDS);
    
    assertEquals("called", 2, slow.ok);

    if (!log.toString().contains("too much time in AWT thread")) {
        fail("There shall be warning about too much time in AWT thread:\n" + log);
    }
}
 
源代码4 项目: zap-extensions   文件: WebSocketPanel.java
@Override
public void onStateChange(final State state, WebSocketProxy proxy) {
    final WebSocketChannelDTO channel = proxy.getDTO();

    try {
        if (EventQueue.isDispatchThread()) {
            updateChannelsState(state, channel);
        } else {
            EventQueue.invokeAndWait(
                    new Runnable() {
                        @Override
                        public void run() {
                            updateChannelsState(state, channel);
                        }
                    });
        }
    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码5 项目: jdk8u-jdk   文件: ScreenMenuMemoryLeakTest.java
public static void main(String[] args) throws InvocationTargetException, InterruptedException {
    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            System.setProperty("apple.laf.useScreenMenuBar", "true");
            showUI();
        }
    });

    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            removeMenuItemFromMenu();
        }
    });
    System.gc();
    System.runFinalization();
    JMenuItem menuItem = sMenuItem.get();
    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            sFrame.dispose();
        }
    });
    if (menuItem != null) {
        throw new RuntimeException("The menu item should have been GC-ed");
    }
}
 
源代码6 项目: openjdk-jdk9   文件: TextViewOOM.java
public static void main(final String[] args) throws Exception {
    /* Create and display the form */
    EventQueue.invokeAndWait(TextViewOOM::createAndShowGUI);
    for (int i = 0; i < 10; i++) {
        System.gc();
        Thread.sleep(1000);
    }
    long mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.err.println("Memory before creating the text: "+mem);
    final StringBuilder sb = new StringBuilder(N * STRING.length());
    for (int i = 0; i < N; i++) {
        sb.append(STRING);
    }
    for (int i = 0; i < 10; i++) {
        System.gc();
        Thread.sleep(1000);
    }
    mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.err.println("Memory after  creating the text: "+mem);

    EventQueue.invokeAndWait(() -> {
        ta.setText(sb.toString());
        for (int i = 0; i < 10; i++) {
            System.gc();
            try {Thread.sleep(200);} catch (InterruptedException iex) {}
        }
        long mem1 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
        System.err.println("Memory after  setting the text: " + mem1);
    });
    for (int i = 0; i < 10; i++) {
        System.gc();
        Thread.sleep(1000);
    }
    mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.err.println("Final memory  after everything: " + mem);
    EventQueue.invokeAndWait(frame::dispose);
}
 
源代码7 项目: Spark   文件: NotificationPlugin.java
/**
 * Notify client that a user has come online.
 *
 * @param jid the jid of the user that has come online.
 * @param presence Presence of the online user.
 */
private void notifyUserOnline(final BareJid jid, final Presence presence) {
 try {
	 EventQueue.invokeAndWait( () -> {
            SparkToaster toaster = new SparkToaster();
            toaster.setDisplayTime(preferences.getNotificationsDisplayTime());
            toaster.setBorder(BorderFactory.createBevelBorder(0));
            toaster.setCustomAction(new ChatAction(jid));
            NotificationAlertUI alertUI = new NotificationAlertUI(jid, true, presence);

            toaster.setToasterHeight((int)alertUI.getPreferredSize().getHeight() + 40);

            int width = (int)alertUI.getPreferredSize().getWidth() + 40;
            if (width < 300) {
                width = 300;
            }

            toaster.setToasterWidth(width);

           toaster.showToaster(alertUI.topLabel.getText(), alertUI);
           toaster.setTitleAlert(new Font("Dialog", Font.BOLD, 13), presence);
        } );
 }
 catch(Exception ex) {
	Log.error(ex); 
 }
}
 
源代码8 项目: dragonwell8_jdk   文件: RequestFocusAndHideTest.java
public static void main(String[] args) throws InterruptedException, java.lang.reflect.InvocationTargetException
{
    final Frame frame = new Frame("the test");
    frame.setLayout(new FlowLayout());
    final Button btn1 = new Button("button 1");
    frame.add(btn1);
    frame.add(new Button("button 2"));
    frame.add(new Button("button 3"));
    frame.pack();
    frame.setVisible(true);

    Robot r = Util.createRobot();
    Util.waitForIdle(r);
    Util.clickOnComp(btn1, r);
    Util.waitForIdle(r);
    KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
    if (kfm.getFocusOwner() != btn1) {
        throw new RuntimeException("test error: can not set focus on " + btn1 + ".");
    }

    EventQueue.invokeAndWait(new Runnable() {
            public void run() {
                final int n_comps = frame.getComponentCount();
                for (int i = 0; i < n_comps; ++i) {
                    frame.getComponent(i).setVisible(false);
                }
            }
        });
    Util.waitForIdle(r);
    final Component focus_owner = kfm.getFocusOwner();

    if (focus_owner != null && !focus_owner.isVisible()) {
        throw new RuntimeException("we have invisible focus owner");
    }
    System.out.println("test passed");
    frame.dispose();
}
 
源代码9 项目: openjdk-jdk9   文件: ScreenMenuMemoryLeakTest.java
public static void main(String[] args) throws InvocationTargetException, InterruptedException {
    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            System.setProperty("apple.laf.useScreenMenuBar", "true");
            showUI();
        }
    });

    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            removeMenuItemFromMenu();
        }
    });
    System.gc();
    System.runFinalization();
    JMenuItem menuItem = sMenuItem.get();
    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            sFrame.dispose();
        }
    });
    if (menuItem != null) {
        throw new RuntimeException("The menu item should have been GC-ed");
    }
}
 
源代码10 项目: jdk8u_jdk   文件: TextViewOOM.java
public static void main(final String[] args) throws Exception {
    /* Create and display the form */
    EventQueue.invokeAndWait(TextViewOOM::createAndShowGUI);
    for (int i = 0; i < 10; i++) {
        System.gc();
        Thread.sleep(1000);
    }
    long mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.err.println("Memory before creating the text: "+mem);
    final StringBuilder sb = new StringBuilder(N * STRING.length());
    for (int i = 0; i < N; i++) {
        sb.append(STRING);
    }
    for (int i = 0; i < 10; i++) {
        System.gc();
        Thread.sleep(1000);
    }
    mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.err.println("Memory after  creating the text: "+mem);

    EventQueue.invokeAndWait(() -> {
        ta.setText(sb.toString());
        for (int i = 0; i < 10; i++) {
            System.gc();
            try {Thread.sleep(200);} catch (InterruptedException iex) {}
        }
        long mem1 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
        System.err.println("Memory after  setting the text: " + mem1);
    });
    for (int i = 0; i < 10; i++) {
        System.gc();
        Thread.sleep(1000);
    }
    mem = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    System.err.println("Final memory  after everything: " + mem);
    EventQueue.invokeAndWait(frame::dispose);
}
 
源代码11 项目: netbeans   文件: TemplateWizardTest.java
@RandomlyFails // NB-Core-Build #1639 (NPE in SunGraphics2D.addRenderingHints from HtmlLabelUI.calcPreferredSize);
               // NB-Core-Build #1644 (CCE: javax.swing.KeyStroke from TreeMap.compare in JTextField.<init>)
public void testNextOnIterImpl () throws Exception {
    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            doNextOnIterImpl (false);
        }
    });
}
 
public static void main(String[] args) throws InterruptedException, java.lang.reflect.InvocationTargetException
{
    final Frame frame = new Frame("the test");
    frame.setLayout(new FlowLayout());
    final Button btn1 = new Button("button 1");
    frame.add(btn1);
    frame.add(new Button("button 2"));
    frame.add(new Button("button 3"));
    frame.pack();
    frame.setVisible(true);

    Robot r = Util.createRobot();
    Util.waitForIdle(r);
    Util.clickOnComp(btn1, r);
    Util.waitForIdle(r);
    KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
    if (kfm.getFocusOwner() != btn1) {
        throw new RuntimeException("test error: can not set focus on " + btn1 + ".");
    }

    EventQueue.invokeAndWait(new Runnable() {
            public void run() {
                final int n_comps = frame.getComponentCount();
                for (int i = 0; i < n_comps; ++i) {
                    frame.getComponent(i).setVisible(false);
                }
            }
        });
    Util.waitForIdle(r);
    final Component focus_owner = kfm.getFocusOwner();

    if (focus_owner != null && !focus_owner.isVisible()) {
        throw new RuntimeException("we have invisible focus owner");
    }
    System.out.println("test passed");
    frame.dispose();
}
 
public void run() {
    // If there are no multiple input methods to choose from, wait forever
    while (!hasMultipleInputMethods()) {
        try {
            synchronized (this) {
                wait();
            }
        } catch (InterruptedException e) {
        }
    }

    // Loop for processing input method change requests
    while (true) {
        waitForChangeRequest();
        initializeInputMethodLocatorList();
        try {
            if (requestComponent != null) {
                showInputMethodMenuOnRequesterEDT(requestComponent);
            } else {
                // show the popup menu within the event thread
                EventQueue.invokeAndWait(new Runnable() {
                    public void run() {
                        showInputMethodMenu();
                    }
                });
            }
        } catch (InterruptedException ie) {
        } catch (InvocationTargetException ite) {
            // should we do anything under these exceptions?
        }
    }
}
 
源代码14 项目: TencentKona-8   文件: NpeOnCloseTest.java
public static void main(String[] args)
{
    Frame frame1 = new Frame("frame 1");
    frame1.setBounds(0, 0, 100, 100);
    frame1.setVisible(true);
    Util.waitForIdle(null);

    Frame frame2 = new Frame("frame 2");
    frame2.setBounds(150, 0, 100, 100);
    frame2.setVisible(true);
    Util.waitForIdle(null);

    Frame frame3 = new Frame("frame 3");
    final Dialog dialog = new Dialog(frame3, "dialog", true);
    dialog.setBounds(300, 0, 100, 100);
    EventQueue.invokeLater(new Runnable() {
            public void run() {
                dialog.setVisible(true);
            }
        });
    try {
        EventQueue.invokeAndWait(new Runnable() { public void run() {} });
        Util.waitForIdle(null);
        EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    dialog.dispose();
                }
            });
    }
    catch (InterruptedException ie) {
        throw new RuntimeException(ie);
    }
    catch (InvocationTargetException ite) {
        throw new RuntimeException(ite);
    }

    frame1.dispose();
    frame2.dispose();
    frame3.dispose();
}
 
源代码15 项目: netbeans   文件: ToolbarWithOverflowTest.java
public void testInitOutsideOfEDT() throws Exception {
    class MyToolbar extends ToolbarWithOverflow implements Runnable {

        @Override
        protected void setUI(ComponentUI newUI) {
            assertTrue("Can only be called in EDT", EventQueue.isDispatchThread());
            super.setUI(newUI);
        }

        @Override
        public void setUI(ToolBarUI ui) {
            assertTrue("Can only be called in EDT", EventQueue.isDispatchThread());
            super.setUI(ui);
        }

        private void assertUI() throws Exception {
            EventQueue.invokeAndWait(this);
        }

        @Override
        public void run() {
            assertNotNull("UI delegate is specified", getUI());
        }
    }

    assertFalse("We are not in EDT", EventQueue.isDispatchThread());
    MyToolbar mt = new MyToolbar();
    assertNotNull("Instance created", mt);

    mt.assertUI();
}
 
源代码16 项目: openjdk-jdk9   文件: bug8003830.java
public static void main(String[] args) throws Exception {
    EventQueue.invokeAndWait(new bug8003830());
}
 
源代码17 项目: openjdk-jdk9   文件: CreateImage.java
public static void main(final String[] args) throws Exception {
    EventQueue.invokeAndWait(CreateImage::test);
}
 
源代码18 项目: netbeans   文件: NavigationTreeViewTest.java
public void testStructureFullOfFormFiles() throws Exception {
    if ((
        Utilities.getOperatingSystem() & 
        (Utilities.OS_SOLARIS | Utilities.OS_SUNOS)
    ) != 0) {
        LOG.log(Level.CONFIG, "Giving up, this test fails too randomly on Solaris");
        return;
    }
    
    Children ch = new Children.Array();
    Node root = new AbstractNode(ch);
    root.setName(getName());

    ch.add(nodeWith("A", "-A", "-B", "B"));
    ch.add(nodeWith("X", "Y", "Z"));

    final Node first = ch.getNodes()[0];

    LOG.log(Level.INFO, "Nodes are ready: {0}", root);
    final ExplorerManager em = testWindow.getExplorerManager();
    em.setRootContext(root);
    LOG.info("setRootContext done");
    em.setSelectedNodes(new Node[] { first });
    LOG.log(Level.INFO, "setSelectedNodes to {0}", first);
    LOG.log(Level.INFO, "Verify setSelectedNodes: {0}", Arrays.asList(em.getSelectedNodes()));

    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            TreePath path = treeView.tree.getSelectionPath();
            LOG.log(Level.INFO, "getSelectionPath {0}", path);
            LOG.log(Level.INFO, "getSelectedNodes {0}", Arrays.toString(em.getSelectedNodes()));
            assertNotNull("Something is selected", path);
            Node node = Visualizer.findNode(path.getLastPathComponent());
            assertEquals("It is the first node", first, node);
        }
    });
    
    sendAction("expand");
    sendAction("selectNext");

    assertEquals("Explored context is N0", first, em.getExploredContext());
    assertEquals("Selected node is A", 1, em.getSelectedNodes().length);
    assertEquals("Selected node is A", "A", em.getSelectedNodes()[0].getName());

    sendAction(enter);

    Keys keys = (Keys)first.getChildren();
    assertEquals("One invocation", 1, keys.actionPerformed);
    assertFalse("No write access", keys.writeAccess);
    assertFalse("No read access", keys.readAccess);
}
 
源代码19 项目: netbeans   文件: ToolbarPoolDeadlockTest.java
public void testWaitsForToolbars () throws Exception {
    assertFalse("Not in AWT thread", EventQueue.isDispatchThread());
    class Block implements Runnable {
        int cnt;
        Toolbar[] myTlbs;
        public void run() {
            if (cnt++ > 0) {
                return;
            }
            init();
        }
        private synchronized void init() {
            try {
                notifyAll();
                wait();
            } catch (InterruptedException ex) {
                Exceptions.printStackTrace(ex);
            }

            ToolbarPool.getDefault().waitFinished();
            myTlbs = ToolbarPool.getDefault().getToolbars ();
        }

        public synchronized void waitAWTBlocked() throws InterruptedException {
            EventQueue.invokeLater(this);
            wait();
        }

        public void finish() throws Exception {
            synchronized (this) {
                notifyAll();
            }
            Thread.sleep(200);
            EventQueue.invokeAndWait(this);
            assertNotNull("My toolbars has been obtained", myTlbs);
        }
    }
    Block block = new Block();
    block.waitAWTBlocked();

    FileObject tlb = FileUtil.createFolder (toolbars, "tlbx");
    DataFolder f = DataFolder.findFolder (tlb);
    InstanceDataObject.create (f, "test1", JLabel.class);

    block.finish();

    assertEquals ("One", 1, block.myTlbs.length);
    assertEquals ("By default there is the one", "tlbx", block.myTlbs[0].getName ());
    assertLabels ("One subcomponent", 1, block.myTlbs[0]);
}
 
源代码20 项目: openjdk-jdk9   文件: TrayIconMouseTest.java
TrayIconMouseTest() throws Exception {
    robot = new ExtendedRobot();
    EventQueue.invokeAndWait(this::initializeGUI);
}