正如@restricteur 所述,您的代码无法编译。
这是因为gui持有 的类main(..)嵌套在另一个类中,因此static除非嵌套类被标记,否则不允许声明方法static。(我只是Gui从移动/取消嵌套Gui2)
除了您的代码确实有效之外,我认为您很仓促 -将鼠标悬停 JLabel 3-4 秒,您应该会看到以下内容ToolTip:
(使用您的代码当然没有编译错误):

代码建议:
1)请注意java命名约定,即类名应该以大写字母开头,之后的每个新词也应该gui变成Gui或GUI,但我更喜欢前者。
2)不要调用setSize使用JFrame和=适当LayoutManager并在设置为可见之前调用pack()(JFrame但在添加组件之后)。
3)不要不必要地扩展JFrame,只需创建一个实例并使用它。
4) 始终通过块在事件调度线程上创建和操作 Swing 组件。SwingUtilities.invokeLater(Runnable r)
5) 选择setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);除非使用Timers,因为main(..)无论是否退出 GUI,这将允许继续。
这是具有上述修复的代码:

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
class Gui2 {
private JLabel item1;
private JFrame frame;
public Gui2() {
frame = new JFrame("The title bar");
frame.setLayout(new FlowLayout());
item1 = new JLabel("label 1");
item1.setToolTipText("This is a message");
String str = item1.getToolTipText();
System.out.println(str);
frame.add(item1);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
class Gui {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Gui2();
}
});
}
}