Estoy haciendo un editor de niveles para mi juego. Tengo un panel de propiedades donde puedo modificar las propiedades del objeto seleccionado. También tengo un botón Guardar para escribir el nivel xml.Java Swing: Problema de enfoque
se presenta un campo de edición (*) cuando el componente de edición pierde el foco o Introduzca se presiona. Esto es trabajo grande, pero el único problema es que cuando tengo esta secuencia de acciones:
- Editar un campo
- Pulse el botón de guardar
Porque, lo que sucede es lo siguiente:
- edito el campo
- pulsar el botón de guardar
- el le vel se guarda
- El campo pierde el foco
- La edición se presenta
Como se puede ver, este es el orden equivocado. Por supuesto, quiero que el campo pierda su foco, lo que causa el envío y luego guarda el nivel.
¿Existe algún truco, truco o solución para hacer que el campo primero pierda el foco y luego realice el detector de acciones del botón de guardar?
Gracias de antemano.
(* submit = la edición en el campo también se hace en la propiedad del objeto)
EDITAR: Para el campo estoy usando un FocusAdapter con focusLost
:
FocusAdapter focusAdapter = new FocusAdapter()
{
@Override
public void focusLost(FocusEvent e)
{
compProperties.setProperty(i, getColor());
record(); // For undo-redo mechanism
}
};
Y para el botón un simple ActionListener
con actionPerformed`.
btnSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
// Save the level
}
});
no importa cómo funciona el código, por favor, publique aquí el código relevante, porque hay otras opciones usando 'DocumentListener', o usando' AncesorListener', o simplemente enviándole 'FocucHell' en' invokeLater' con 'myTextField.setText (myTextField.getText); ' – mKorbel
@mKorbel: Intenté encapsular el proceso de guardado en un' invokeLater', pero todavía está en el orden incorrecto. –
Vea también este [Q & A] (http://stackoverflow.com/questions/6803976/focusevent-doesnt-get-the-last-value-of-jformattedtextfield-how-i-can-get-it/6804749#6804749) . – trashgod