在组件下面绘制图形

Dun*_*mer 0 java animation swing background jtextfield

所以我目前正在创建一个登录屏幕,它具有使用Graphics对象和"游戏循环"制作的酷炫背景效果.当我添加一个JTextField虽然,它被看到在一切,而不是在上面.无论如何要在图形内部的所有组件下绘制JFrame

这是图形的图像:

在此输入图像描述

文本字段就在那里,就在绘制到框架表面的所有内容之下.我想以某种方式重新排序,以便它在组件下面绘制.

这是我目前的框架代码:

    frame = new JFrame("Login");
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.getContentPane().setPreferredSize(new Dimension(450, 200));
    frame.getContentPane().setBackground(Color.black);
    frame.setBackground(Color.black);
    frame.setLayout(new FlowLayout());

    JTextField user = new JTextField(20);
    user.setLocation(100, 200);
    user.setVisible(true);
    frame.add(user);

    frame.pack();
    frame.setVisible(true);

    frame.createBufferStrategy(2);
    buff = frame.getBufferStrategy();

    Painter painter = new Painter();
    frame.add(painter);
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

tra*_*god 5

AnimationTest显示了一种方法.它会覆盖paintComponent()并调用super.paintComponent()以确保组件在背景上呈现.单击任意位置以定位文本字段; 调整大小以查看默认FlowLayout工作原理.JPanel默认情况下使用现有缓冲区策略进行双缓冲.

  • 另请参阅[此示例](http://stackoverflow.com/a/10836833/418556)以获取带有动画BG(GIF)的面板以及同一问题的接受答案 - 以获取加载它的最佳方式.;) (2认同)