java - NetBeans JPanel 渐变背景

标签 java swing netbeans gradient

有几篇文章介绍了如何向 JPanel 添加渐变,但它们都假设我们从头开始对 JPanel 进行硬编码。谁能解释如何向使用 NetBeans GUI 构建器构建的 JPanel 添加渐变? (我是一个 Java 新手......在处理方面更有经验,所以如果你不介意像我九岁 child 一样回答......)。

我有一个名为“Home”的 JPanel,我想在其上添加渐变。在 NetBeans 中,在“自定义代码”菜单选项下,我可以看到以下内容:

Home.setBackground(new java.awt.Color(153, 204, 255));

这里有几篇文章包含此代码的变体:

@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D)g;
    int w = getWidth();
    int h = getHeight();

    GradientPaint gp = new GradientPaint(
            0, 0, Color.white,
            0, h, Color.black);

    g2d.setPaint(gp);
    g2d.fillRect(0, 0, w, h);
}

但是我应该把它放在哪里,以及如何将它附加到我的主页面板上? g指的是什么?

感谢您的宝贵时间。

最佳答案

您必须创建自己的面板类并扩展 JPanel。我从未使用过 NetBeans GUI 构建器,不知道是否可以使用它添加自定义组件。 g 指的是作为方法参数的 Graphics 对象。

public class GradientPanel extends JPanel {

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g.create();
        int w = getWidth();
        int h = getHeight();

        GradientPaint gp = new GradientPaint(
                0, 0, Color.white,
                0, h, Color.black);

        g2d.setPaint(gp);
        g2d.fillRect(0, 0, w, h);

        g2d.dispose();
    }
}

然后只需使用 GradientPanel 而不是 JPanel。

如果您想了解这幅画,请参阅相关教程,但您或多或少可以复制并粘贴该代码并使用它:

http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html

关于java - NetBeans JPanel 渐变背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613955/

相关文章:

java - 如何动态启用或禁用 Java Swing 程序的任务栏图标

Java图形重绘问题

java - java 桌面应用程序的报告

Java GUI Netbeans,在另一个包中的类的文本区域中显示输出

java - 如何使切换按钮自动切换

java - 如何测量 for 循环的执行时间?

Android登录注册中java.lang.String无法转换为JSONObject

Java游戏: limit visibility of board dependent on location of player

java - 从页面名称中删除 .jsp

java - 从 Java 6 到 Java 7 有 JDiff 吗?