Java 没有工具提示的Jbutton会生成黑点
当鼠标在没有工具提示的任何按钮上输入时,会出现黑点(就像工具提示的一角)。这真的很奇怪,我不知道该怎么办:/I我通过netbeans->java桌面应用程序生成了我的项目。我从未在该按钮中设置toolTipText,因此它们默认为空。有什么想法吗 编辑: 当我写到它是空的时,我的意思是它在JButton工具提示的属性中什么都不是。生成的代码:Java 没有工具提示的Jbutton会生成黑点,java,swing,netbeans,jbutton,Java,Swing,Netbeans,Jbutton,当鼠标在没有工具提示的任何按钮上输入时,会出现黑点(就像工具提示的一角)。这真的很奇怪,我不知道该怎么办:/I我通过netbeans->java桌面应用程序生成了我的项目。我从未在该按钮中设置toolTipText,因此它们默认为空。有什么想法吗 编辑: 当我写到它是空的时,我的意思是它在JButton工具提示的属性中什么都不是。生成的代码: lottery.setAction(actionMap.get("lotteryStart")); // NOI18N lottery.setText(r
lottery.setAction(actionMap.get("lotteryStart")); // NOI18N
lottery.setText(resourceMap.getString("lottery.text")); // NOI18N
lottery.setName("lottery"); // NOI18N
programView.properties:
lottery.text=Start
不要使用NetBeans生成代码。这样,您就知道所有代码都做了什么,并可以在出现问题时进行更改 默认值应为null,而不是“”(空字符串)
发布您的演示问题的文章。我同意@jfpoilpret的观点,该问题与NetBeans无关。问题是工具提示没有像@camickr所说的那样是默认的,即null。您必须在某处将其设置为“”空字符串。将其设置为null,则问题已排序 下面的示例代码说明了这个问题。一个按钮的工具提示为空(因为println证明这是默认按钮),另一个按钮的工具提示为“”(空字符串)
这是一个老问题,但实际上是一个netbeans问题,应该予以修复。不过,这并不是固定不变的
Netbeans将工具提示设置为“”而不是null。即使在文本中将它们设置为null,下次打开netbeans的UI设计时,它也会再次将它们设置为“”。我认为问题不在于netbeans生成的代码,而在于这里使用的Swing App Framework(由netbeans支持)。问题似乎是SAF资源注入在属性文件中未指定资源时使用“”而不是null来注入工具提示。添加到camickr correct sugestion,Java桌面应用程序框架基于Swing,实现了一些方法,有些可能没有,无论如何,检查一下这个Swing tuturials on,以及问题所在的方法on和+1+1的大量示例。为了让自己更容易找到答案,其他人可能会想知道,我在这里添加了我的答案,代码展示了大家在这里所说的内容和问题。我在所有jButtons setToolTipText(null)中添加了setToolTipText(null),它可以正常工作。幸运的是,我只有10个按钮,所以这不是一个问题。IIRC,还有一种方法,直接在属性文件中,将工具提示设置为null,类似于
彩票。tooltipText={null}
,尽管我记不起确切的细节。无论如何,这看起来仍然像是SAF资源注入中的一个bug。
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class ToolTipTest
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
JPanel p = new JPanel();
JButton b1 = new JButton("My tooltip is null");
System.out.println("default tooltip is b1.getToolTipText()="+b1.getToolTipText());
b1.setToolTipText(null);
p.add(b1);
JButton b2 = new JButton("My tooltip is\"\"");
b2.setToolTipText("");
p.add(b2);
JFrame f = new JFrame();
f.setContentPane(p);
f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
}