Java 用于自己的图形的工具提示
我的java应用程序包含一个JPanel,我在其上绘制某些形状。现在我想用一些工具提示来标记这些形状 因此,我尝试使用drawString、setBackground和setColor方法创建自己的“工具提示”:Java 用于自己的图形的工具提示,java,swing,user-interface,tooltip,Java,Swing,User Interface,Tooltip,我的java应用程序包含一个JPanel,我在其上绘制某些形状。现在我想用一些工具提示来标记这些形状 因此,我尝试使用drawString、setBackground和setColor方法创建自己的“工具提示”: public void drawToolTip(Graphics2D graphics, String text, Point2D position) { graphics.setBackground(Color.RED); graphics.setColor(Colo
public void drawToolTip(Graphics2D graphics, String text, Point2D position) {
graphics.setBackground(Color.RED);
graphics.setColor(Color.GREEN);
graphics.drawString(text, (float) position.getX(), (float) position.getY());
}
不幸的是,挫折的方法似乎不起作用。文本背景保持透明,尽管我将其设置为红色。setColor和抽绳很好用
我的问题是:
- 挫折法不起作用的原因可能是什么
- 有没有可能在没有drawRect的情况下在文本周围画一个边界
- 如果我想使用“drawRect”方法作为替换来绘制文本背景和边框:如何使其自动适合书面文本?或者换句话说,我怎样才能得到特定文本的维度
关于Marc一个简单的实现需要在
JLabel
图标的图形
对象上绘制。然后简单地将工具提示文本添加到Swing组件
有关更多信息,请参阅。Graphics2D.drawString()默认情况下不绘制背景。你必须自己做这件事
- 您可以使用
绘制线条边框,或使用drawRect()
绘制实心矩形fillRec()
- 甲骨文在测量字符串宽度方面有很大的优势。本质上,您需要创建一个
,然后获取它的java.awt.Font
,并使用它来计算字符串的宽度和高度FontMetrics
图形更改背景颜色。设置背景(..)
呼叫。在Graphics2D中设置背景色只影响clearRect或fillRect类型的调用,而不影响组件的背景色
要在您希望的位置绘制一个具有特定背景的矩形,您必须遵循以下步骤:
r
grpahics.setPaint()
用于背景和graphics.fill(r)
graphcis.setPaint()
用于边框和图形。绘制(r)
以绘制边框FontMetrics
计算高度等。
我在谷歌上找到了一个例子顺便问一下,你是如何得到Graphics2D对象的?它是从BuffereImage来的吗?您是在组件上调用
getGraphics()
还是createGraphics()
?在JPanel的绘制方法中,我会:Graphics2D Graphics2D=(Graphics2D)graphics;并调用drawToolTip方法。另外,请确保调用Graphics2D.setFont()
,以便实际绘制的字符串使用的字体与获得的FontMetrics
相同。