Does anyone know how to add JTextField
into Graphics name bufferstrategy.getDrawGraphics
?
Tryed to pain it into graphics, something like this:
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);
But, eventhough it displayed, I could not edit it. Even the Input.setBounds(800,250, 350,20)
did not work. This method that is written above, is being called inside a gameloop. Can anyone help me?
Painting a component on a
Graphics
won't make it a "live" component. Components need to be added to a valid container that is attached to a native peer before they become live.At the moment, the only thing you are doing is producing a "rubber stamp"/image of the component on the surface of the graphics context.
There are some tricks to this, as the painting process expects that the component is attached to a valid, native peer.
First, you must prepare the field...
Then you need to paint it. The field will not automatically repaint, again, this has to do with the field not been attached to a native peer...
If you want a life component, you are going to have to add the component to the container. This may be problematic when using a buffer strategy...
Swing components are already double buffered.