diff --git a/test/jdk/javax/swing/JToolTip/TooltipTest.java b/test/jdk/javax/swing/JToolTip/TooltipTest.java
new file mode 100644
index 00000000000..c081730a8d7
--- /dev/null
+++ b/test/jdk/javax/swing/JToolTip/TooltipTest.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 1999, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4207474 4218495 4375928
+ * @summary Tests various tooltip issues: HTML tooltips, long tooltip text
+ * and mnemonic keys displayed in tooltips
+ * @library /java/awt/regtesthelpers
+ * @build PassFailJFrame
+ * @run main/manual TooltipTest
+ */
+
+import java.awt.FlowLayout;
+import java.awt.event.KeyEvent;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.UIManager;
+
+public class TooltipTest {
+ private static final String INSTRUCTIONS = """
+ 1. Move the mouse over the button labeled "Red tip" and let it stay
+ still in order to test HTML in JToolTip. If the tooltip has some
+ text which is red then test passes, otherwise it fails (bug 4207474).
+
+ 2. Move the mouse over the button labeled "Long tip".
+ If the last letter of the tooltip appears clipped,
+ then the test fails. If you can see the entire last character,
+ then the test passes (bug 4218495).
+
+ 3. Verify that "M" is underlined on the button labeled "Mnemonic"
+ Move the mouse pointer over the button labeled "Mnemonic" and look
+ at tooltip when it appears. It should read "hint".
+ If the above is true test passes else test fails (bug 4375928).
+ """;
+
+ public static void main(String[] args) throws Exception {
+ UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
+
+ PassFailJFrame.builder()
+ .title("TooltipTest Instructions")
+ .instructions(INSTRUCTIONS)
+ .columns(40)
+ .testUI(TooltipTest::createTestUI)
+ .build()
+ .awaitAndCheck();
+ }
+
+ private static JComponent createTestUI() {
+ JPanel panel = new JPanel();
+ panel.setLayout(new FlowLayout());
+
+ JButton b = new JButton("Red tip");
+ b.setToolTipText("
Here is some " +
+ "red text.");
+ panel.add(b);
+
+ b = new JButton("Long tip");
+ b.setToolTipText("Is the last letter clipped?");
+ panel.add(b);
+
+ b = new JButton("Mnemonic");
+ b.setMnemonic(KeyEvent.VK_M);
+ b.setToolTipText("hint");
+ panel.add(b);
+
+ return panel;
+ }
+}
diff --git a/test/jdk/javax/swing/JToolTip/bug4225314.java b/test/jdk/javax/swing/JToolTip/bug4225314.java
new file mode 100644
index 00000000000..d36bd461272
--- /dev/null
+++ b/test/jdk/javax/swing/JToolTip/bug4225314.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 1999, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4225314
+ * @summary Tests that tooltip is painted properly when it has thick border
+ * @library /java/awt/regtesthelpers
+ * @build PassFailJFrame
+ * @run main/manual bug4225314
+ */
+
+import java.awt.Color;
+import java.awt.FlowLayout;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.JToolTip;
+import javax.swing.border.LineBorder;
+
+public class bug4225314 {
+ private static final String INSTRUCTIONS = """
+ The word "Tooltip" in both tooltips should not be clipped by the
+ black border and be fully visible for this test to pass.
+ """;
+
+ public static void main(String[] args) throws Exception {
+ PassFailJFrame.builder()
+ .title("bug4225314 Instructions")
+ .instructions(INSTRUCTIONS)
+ .columns(40)
+ .testUI(bug4225314::createTestUI)
+ .build()
+ .awaitAndCheck();
+ }
+
+ private static JComponent createTestUI() {
+ JToolTip tt1 = new JToolTip();
+ tt1.setTipText("Tooltip");
+ tt1.setBorder(new LineBorder(Color.BLACK, 10));
+
+ JToolTip tt2 = new JToolTip();
+ tt2.setTipText("Tooltip");
+ tt2.setBorder(new LineBorder(Color.BLACK, 10));
+
+ JPanel panel = new JPanel();
+ panel.setLayout(new FlowLayout());
+ panel.add(tt1);
+ panel.add(tt2);
+
+ return panel;
+ }
+}
diff --git a/test/jdk/javax/swing/JToolTip/bug4255441.java b/test/jdk/javax/swing/JToolTip/bug4255441.java
new file mode 100644
index 00000000000..4a90c975502
--- /dev/null
+++ b/test/jdk/javax/swing/JToolTip/bug4255441.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4255441
+ * @summary Tests that tooltip appears inside AWT Frame
+ * @library /java/awt/regtesthelpers
+ * @build PassFailJFrame
+ * @run main/manual bug4255441
+ */
+
+import java.awt.FlowLayout;
+import java.awt.Frame;
+import javax.swing.JButton;
+
+public class bug4255441 {
+ private static final String INSTRUCTIONS = """
+ Move mouse pointer inside the button.
+ If a tooltip with "Tooltip text" appears, the test passes.
+ """;
+
+ private static Frame createTestUI() {
+ Frame fr = new Frame("bug4255441");
+ fr.setLayout(new FlowLayout());
+
+ JButton bt = new JButton("Button");
+ bt.setToolTipText("Tooltip text");
+ fr.add(bt);
+
+ fr.setSize(200, 200);
+ return fr;
+ }
+
+ public static void main(String[] argv) throws Exception {
+ PassFailJFrame.builder()
+ .title("bug4255441 Instructions")
+ .instructions(INSTRUCTIONS)
+ .columns(40)
+ .testUI(bug4255441::createTestUI)
+ .build()
+ .awaitAndCheck();
+ }
+}