所以我目前正在制作一个登录屏幕,它具有使用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);
请帮忙吗?
答案 0 :(得分:5)
AnimationTest
显示了一种方法。它会覆盖paintComponent()
并调用super.paintComponent()
以确保组件在背景上呈现。单击任意位置以定位文本字段;调整大小以查看默认FlowLayout
的工作原理。默认情况下,JPanel
使用现有缓冲区策略进行双缓冲。