如何将JLabel放在矩形内

use*_*790 0 java graphics swing jlabel paintcomponent

我已经创建了一个矩形,现在我必须将一个JLabel放入其中.那我怎么能把JLabel放在矩形里面呢.

代码在这里: -

public class ColoredRect extends JPanel
{

    private double x, y, width, height;  

    public ColoredRect(double x,double y)
    {
          this.x = x;
          this.y = y;
          width = 100;
          height =40;
          rect = new Rectangle2D.Double(this.x , this.y,width,height);
    }
    public void paintComponent(Graphics g) 
    {
        super.paintComponent(g);  
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.cyan);
        g2.fill(rect);
    }
}
Run Code Online (Sandbox Code Playgroud)

请给我一些实现这个的想法.

提前致谢.

Mar*_*nik 5

有很多方法可以达到类似的效果.但是,你不应该真正使用你的方法.当你使用paintComponent进行真正的绘画并且不在其上放置摇摆组件时,请使用paintComponent,我相信它更清晰的方法.

您可以使用JLayeredPane,将标签放在一个图层中,将绘图放在另一个图层上.

我会考虑在你的标签中使用Borders - 在这种情况下你可能根本不需要矩形.请参阅此处的示例:带边框的标签

希望这可以帮助