在组件下面绘制图形

时间:2012-06-20 06:43:45

标签: java swing animation background jtextfield

所以我目前正在制作一个登录屏幕,它具有使用Graphics对象和“游戏循环”制作的酷炫背景效果。当我添加JTextField时,它会出现在所有内容之下而不是上方。无论如何要在JFrame

内的所有组件下面绘制图形

这是图形的图像:

enter image description here

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

这是我目前的框架代码:

    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);

请帮忙吗?

1 个答案:

答案 0 :(得分:5)

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