0

因此,我目前正在制作一个登录屏幕,该屏幕具有使用 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);

请问有什么帮助吗?

4

1 回答 1

5

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

于 2012-06-20T07:00:55.860 回答