javax.swing.plaf.synth.SynthLookAndFeel#load ( )源码实例Demo

下面列出了javax.swing.plaf.synth.SynthLookAndFeel#load ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: java-swing-tips   文件: MainPanel.java
private static void createAndShowGui() {
  Class<?> clz = MainPanel.class;
  try (InputStream is = clz.getResourceAsStream("button.xml")) {
    SynthLookAndFeel synth = new SynthLookAndFeel();
    synth.load(is, clz);
    UIManager.setLookAndFeel(synth);
  } catch (IOException | ParseException | UnsupportedLookAndFeelException ex) {
    ex.printStackTrace();
    Toolkit.getDefaultToolkit().beep();
  }
  // try {
  //   SynthLookAndFeel synth = new SynthLookAndFeel();
  //   synth.load(clz.getResource("button.xml"));
  //   UIManager.setLookAndFeel(synth);
  // } catch (IOException | ParseException | UnsupportedLookAndFeelException ex) {
  //   ex.printStackTrace();
  // }
  JFrame frame = new JFrame("@[email protected]");
  frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  frame.getContentPane().add(new MainPanel());
  frame.pack();
  frame.setLocationRelativeTo(null);
  frame.setVisible(true);
}
 
源代码2 项目: openjdk-jdk9   文件: bug8040328.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel lookAndFeel = new SynthLookAndFeel();
    lookAndFeel.load(new ByteArrayInputStream(synthXml.getBytes("UTF8")),
            bug8040328.class);
    UIManager.setLookAndFeel(lookAndFeel);
    SwingUtilities.invokeAndWait(new Runnable() {
        public void run() {
            final JFrame frame = new JFrame();
            try {
                frame.setUndecorated(true);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
                test(frame);
            } finally {
                frame.dispose();
            }
        }
    });
    System.out.println("ok");
}
 
源代码3 项目: dragonwell8_jdk   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码4 项目: openjdk-jdk8u   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码5 项目: swift-k   文件: SwingMonitor.java
private void setSynthLookAndFeel() {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    try {
        laf.load(this.getClass().getClassLoader().getResourceAsStream("laf.xml"), SwingMonitor.class);
        UIManager.setLookAndFeel(laf);
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}
 
源代码6 项目: openjdk-jdk9   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码7 项目: jdk8u-jdk   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码8 项目: jdk8u-jdk   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码9 项目: hottub   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码10 项目: openjdk-8-source   文件: SynthTest.java
public static void main(String[] args) throws Exception {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    InputStream in = SynthTest.class.getResourceAsStream(
            "synthconfig.xml");
    laf.load(in, SynthTest.class);

    UIManager.setLookAndFeel(laf);

    if (!Color.RED.equals(new JButton().getForeground())) {
        throw new RuntimeException("The wrong foreground color!");
    }
}
 
源代码11 项目: dragonwell8_jdk   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码12 项目: TencentKona-8   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码13 项目: jdk8u_jdk   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码14 项目: jdk8u60   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码15 项目: openjdk-jdk8u   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码16 项目: openjdk-jdk8u-backup   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码17 项目: jdk8u-jdk   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码18 项目: hottub   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码19 项目: jdk8u-jdk   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}
 
源代码20 项目: openjdk-8   文件: bug7158712.java
public static void main(String[] args) throws Exception {
    Robot robot = new Robot();

    robot.setAutoDelay(500);

    SynthLookAndFeel laf = new SynthLookAndFeel();

    laf.load(new ByteArrayInputStream(SYNTH_XML.getBytes("UTF8")), bug7158712.class);

    UIManager.setLookAndFeel(laf);

    EventQueue.invokeAndWait(new Runnable() {
        public void run() {
            comboBox = new JComboBox<>(
                    new String[]{"Very Looooooooooooooooooooong Text Item 1", "Item 2"});

            JFrame frame = new JFrame();

            frame.add(comboBox, BorderLayout.NORTH);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(new Dimension(400, 300));
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });

    ((SunToolkit) Toolkit.getDefaultToolkit()).realSync();

    Point comboBoxLocation = Util.invokeOnEDT(new Callable<Point>() {
        @Override
        public Point call() throws Exception {
            return comboBox.getLocationOnScreen();
        }
    });

    robot.mouseMove(comboBoxLocation.x, comboBoxLocation.y);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            BasicComboPopup popup = (BasicComboPopup) comboBox.getAccessibleContext().getAccessibleChild(0);

            Point popupPoint = popup.getLocationOnScreen();
            Point comboBoxPoint = comboBox.getLocationOnScreen();

            if (comboBoxPoint.x - 5 != popupPoint.x ||
                    comboBoxPoint.y + comboBox.getHeight() - 5 != popupPoint.y) {
                throw new RuntimeException("Invalid popup coordinates. Popup location: " + popupPoint +
                        ", comboBox location: " + comboBoxPoint);
            }

            System.out.println("Test bug7158712 passed");
        }
    });
}