首页 > 解决方案 > 覆盖油漆组件只能改变颜色

问题描述

我的代码在这里覆盖了paintComponent为 GUI 着色的方法,它只有一个矩形矩形。然而,我发现我可以在函数中设置颜色,但任何其他类型的格式都没有任何效果。我不能给它一个边框(这是我的主要目标),我什至不能让颜色更亮。我到底在这里想念什么?

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    Graphics2D g2d = (Graphics2D) g;
    if (isFirstTime) {
        area = new Rectangle(dim);
        rect.setLocation(50, 50);
        isFirstTime = false;
    }

    g2d.setColor(Color.blue.brighter().brighter());
    g2d.setStroke(new BasicStroke(100));
    g2d.fill(rect);
}

这里的总体目标基本上是能够突出显示选定的对象,但我删除了其他所有内容以归结为基本问题。

标签: javaswinguser-interfacepaintcomponent

解决方案


颜色可以通过进行操作Color color = new Color(float R, float G, float B, float A /*RGB value and alpha value for opacity*/),我认为您需要将 aShape而不是 aRectangle()传递给该.fill方法。https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html#setStroke(java.awt.Stroke)这是 Graphics2D 的文档。https://docs.oracle.com/javase/7/docs/api/java/awt/Color.html这是 Color 的文档。


推荐阅读