Java JPanel如何添加ToolTipText

Java JPanel如何添加ToolTipText,java,swing,jpanel,tooltip,Java,Swing,Jpanel,Tooltip,我有一个小问题,我需要将ToolTipText添加到JPanel。我该怎么做? 当我将鼠标放在圆上时,我希望有一个工具提示。 这是我代码的一部分 JPanel component1 = new JPanel(); JPanel component11 = new JPanel(); okno.add(component1,"align left,cell 0 0, h 75!, grow,wrap"); component1.setLayout(new MigLayout("","[][gr

我有一个小问题,我需要将
ToolTipText
添加到
JPanel
。我该怎么做? 当我将鼠标放在圆上时,我希望有一个工具提示。 这是我代码的一部分

JPanel component1 = new JPanel();
JPanel component11 = new JPanel();
okno.add(component1,"align left,cell 0 0, h 75!, grow,wrap");


component1.setLayout(new MigLayout("","[][grow][grow]", "[grow]"));
component1.add((okno.add(creLab("Kraj", i, czcionka, etykietki))),"left align, cell 0 0");
component1.add(t1,"cell 1 0,grow");
//component1.add(new circle1(),"right align, cell 2 0,h 50!, w 53!, gapleft 50, wrap");
component1.add(component11," right align, cell 2 0, h 30!, gapleft 300, wrap");
component11.setLayout(new MigLayout("","[]","[]"));
component11.add(new circle1(),"cell 0 0,h 50!, w 50!, dock north");
component11.setToolTipText("<html>W polu obok wpisz kraj pochodzenia towaru</html>");

第一件事是确定鼠标何时在圆圈内。为此,您可以根据圆形区域验证鼠标在mouseMotionlister上的位置


一旦确定了这种情况,您可以继续更改工具提示,第一件事是确定鼠标何时在圆圈内。为此,您可以根据圆形区域验证鼠标在mouseMotionlister上的位置

一旦识别出这种情况,您可以继续更改工具提示查看

这将允许您根据鼠标位置确定要返回的文本

很难为您的代码片段确定圆的确切绘制位置,但我会避免直接绘制到小程序的表面,而是使用自定义组件(如
JPanel
)代替(覆盖其
paintComponent
方法)。然后,我会将其添加到小程序或控制面板中

这样可以避免鼠标事件被消耗的问题

我还要看一看,它可以用来确定椭圆是否包含一个给定的点

这将允许您根据鼠标位置确定要返回的文本

很难为您的代码片段确定圆的确切绘制位置,但我会避免直接绘制到小程序的表面,而是使用自定义组件(如
JPanel
)代替(覆盖其
paintComponent
方法)。然后,我会将其添加到小程序或控制面板中

这样可以避免鼠标事件被消耗的问题

我还要看一看,它可以用来确定椭圆是否包含给定的点参见。可以使用shapecon创建JLabel。然后您只需使用JLabel的
setToolTipText()
方法。然后,可以像其他任何组件一样将标签添加到面板中

现在,您可以使用组件来表示形状,因此无需进行自定义绘制。只需创建一个面板,将组件添加到面板。您还可以为所有文本字符串创建JLabel

不要做定制绘画,除非你有充分的理由这样做

见。可以使用shapecon创建JLabel。然后您只需使用JLabel的
setToolTipText()
方法。然后,可以像其他任何组件一样将标签添加到面板中

现在,您可以使用组件来表示形状,因此无需进行自定义绘制。只需创建一个面板,将组件添加到面板。您还可以为所有文本字符串创建JLabel


不要做定制绘画,除非你有充分的理由这样做

好的!非常感谢。我会尝试这样做:)如果你不需要精确的面积计算,你甚至可以假设一个正方形的面积,而你的实现可能更容易。它只在“边界附近”工作,因为你使用的是“鼠标遮挡”!如果你想让它在整个面板中工作,那么只需删除“mouseMoved”中的注释,并验证你是否在面板中。好的!非常感谢。我会尝试这样做:)如果你不需要精确的面积计算,你甚至可以假设一个正方形的面积,而你的实现可能更容易。它只在“边界附近”工作,因为你使用的是“鼠标遮挡”!如果您想让它在整个面板中工作,那么只需删除“mouseMoved”中的注释,并验证您是否在面板中。
class circle1扩展小程序
。。。是什么让你认为扩展
Applet
是正确的选择?
类循环1扩展Applet
。。。是什么让你认为扩展
Applet
是正确的方法?
class circle1 extends Applet{
    public void paint(Graphics g){
        setForeground(Color.yellow);
        g.drawOval(0, 0, 50, 50);
        g.fillOval(0, 0, 50, 50);
        g.setColor(Color.black);
        g.drawString("Jak", 14, 14);
        g.drawString("wpisac", 3, 28);
        g.setColor(Color.red);
        g.drawString("kraj?", 14, 42);


        //g.drawString(arg0, arg1, arg2)
    }
}