gpt4 book ai didi

java - 在java中将文本字段添加到图形

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:35 26 4
gpt4 key购买 nike

有谁知道如何将 JTextField 添加到图形名称 bufferstrategy.getDrawGraphics 中?试着把它变成图形,像这样:

private JTextField Input = new JTextField();
BufferStrategy bs = getBufferStrategy();

if (bs == null) {
createBufferStrategy(3);
return;
}

final Graphics gCommands = bs.getDrawGraphics();
Graphics gCC = bs.getDrawGraphics();
Input.requestFocus();
Input.paint(gCC);
Input.setBounds(800,250, 350,20);
Input.setBorder(BorderFactory.createLineBorder(Color.BLACK, 0));
Input.setEditable(true);
Input.setBackground(getBackground());
Input.setForeground(getForeground());
Input.addKeyListener(key);

但是,即使它显示了,我也无法编辑它。甚至 Input.setBounds(800,250, 350,20) 也不起作用。上面写的这个方法在游戏循环中被调用。谁能帮帮我?

最佳答案

Graphics 上绘制组件不会使其成为“实时”组件。在组件上线之前,需要将组件添加到附加到本地对等点的有效容器。

目前,您唯一要做的就是在图形上下文的表面上生成组件的“橡皮图章”/图像。

这有一些技巧,因为绘制过程期望组件附加到有效的本地对等点。

首先,你必须准备 field ......

Input.setBounds(800,250, 350,20);
Input.setBorder(BorderFactory.createLineBorder(Color.BLACK, 0));
Input.setEditable(true);
Input.setBackground(getBackground());
Input.setForeground(getForeground());

然后你需要画它。该字段不会自动重新绘制,同样,这与未附加到本地对等方的字段有关...

Input.printAll(gCC);

如果你想要一个生命组件,你将不得不将组件添加到容器中。这在使用缓冲策略时可能会出现问题...

Swing 组件已经是双缓冲的。

关于java - 在java中将文本字段添加到图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com