java - 如何将 JLabel 放在矩形内

标签 java swing graphics 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);
    }
}

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

提前致谢。

最佳答案

有很多方法可以达到类似的结果。但是,您不应该真正使用您的方法。使用paintComponent就像用它来真正绘画一样,不要在上面放置swing组件,我相信它的做法更清晰。

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

我会考虑在标签中使用边框 - 也许在这种情况下您根本不需要矩形。 请参阅此处的示例:Labels with Borders

希望这有帮助

关于java - 如何将 JLabel 放在矩形内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11239225/

相关文章:

java - junit:没有找到测试

java.lang.NoSuchFieldError : No static field MapAttrs_liteMode of type I in class Lcom/google/android/gms/R$styleable; 错误

java - 检查单实例java程序

delphi - 使用 PNG 与 BMP 处理大文件的效率

java - 为什么导入的 war 文件在 Eclipse 中不起作用

具有多个 JPanel 的 Java keyListener

java - java中的分层绘图

Java - 为什么组件函数调用actionPerformed?

java - 面板中的居中字符串

python - QPainterPath - 移动/删除元素