当前位置: 首页 > 面试题库 >

我如何才能使JFrame背景疯狂地改变颜色?

钱季
2023-03-14
问题内容

我正在制作“来自地狱的GUI”,并且试图使JFrame闪烁颜色(快速更改背景)的时间足够长,令人讨厌。这就是我得到的:

int changes = gen.nextInt(2000) + 5000;
int red;
int green;
int blue;
Color color;

for (int i = 0; i < changes; i++)
{   
    color = new Color(gen.nextInt(256), gen.nextInt(256),
    gen.nextInt(256));
    // I first tried this...
    frameMain.getContentPane().setBackground(color);
    // Then I tried this, which only
    // appeared to change the color once and then proclaim
    // that it was done:
    panel1.setBackground(color);
    panel2.setBackground(color);
    panel3.setBackground(color);
}

注意: 如果您知道如何轻松地使整个JFrame及其所有内容更改颜色(而不仅仅是背景),那将是非常疯狂和令人敬畏的,因此让我们开始吧。

任何指导表示赞赏!希望我不仅错过了一些愚蠢的事情…

…如果您对可笑的GUI效果有一个或两个想法,请随时分享! :)


问题答案:

这是我对您的GUI的看法,看来工作还可以。非常激烈。您如何执行更新?在另一个线程上?

final JFrame frame = new JFrame();
frame.setSize(600, 400);
frame.getContentPane().setLayout(new GridLayout(3, 1, 20, 20));
final JPanel[] panels = new JPanel[3];
for (int i = 0; i < panels.length; i++) {
    panels[i] = new JPanel();
    panels[i].setOpaque(true);
    frame.getContentPane().add(panels[i]);
}
frame.setVisible(true);
ActionListener action = new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        Random gen = new Random();

        Color color = new Color(gen.nextInt(256), gen.nextInt(256),
                gen.nextInt(256));
        frame.getContentPane().setBackground(color);

        for (int i = 0; i < panels.length; i++) {
            color = new Color(gen.nextInt(256), gen.nextInt(256),
                    gen.nextInt(256));
            panels[i].setBackground(color);
        }
    }
};

Timer t = new Timer(100, action);
t.setRepeats(true);
t.start();


 类似资料:
  • 我需要帮助的java swing为GUI。我已经包含了“frame.getContentPane().setbackground(color.cyan);”到代码,但框架的背景颜色不变?谢谢你。

  • 这是我的java文本,看起来有点出乎意料,但是我想改变按钮的背景颜色,这取决于答案是正确的还是错误的 属于“voortgang-button”的css } 然而;现在的问题是我做错了什么?我是一个刚开始的JavaScript程序员,也是荷兰人,所以请多包涵;).

  • 我刚开始编程,这是我第一次尝试学习新东西。我不知道我的代码有什么问题,因为它不想工作。我所需要的只是通过点击div来改变bg的颜色。如果在“function”之前删除第一行代码,它就会起作用,但只有在重新加载页面时才起作用。

  • 问题内容: 有谁知道使用JavaScript交换网页背景色的简单方法? 问题答案: 修改JavaScript属性。 例如: 注意:这确实取决于页面的组合方式,例如,如果您使用的背景颜色不同的DIV容器,则需要修改其背景颜色而不是文档主体。

  • 我正在使用浮动操作按钮,我想更改背景颜色。 这是我的密码 下面是我用来尝试实现这一点的代码: 我也得到我的FAB的角落,如图所示。我应该如何消除那些角落的阴影?

  • 我无法让JPanel改变颜色。我也不能让JFrame改变颜色。我在网上查过...我还有一个程序,它有几乎相同的代码来设置JPanel和JFrame。我就是不能让它起作用。 下面是我的主要方法: 编辑:稍后在我的主要方法中有 下面是JPanel的构造函数: 背景颜色保持默认灰色。