Tengo el siguiente código:
import javax.swing.* ... UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()) UIManager.put("ToolTip.border", BorderFactory.createEmptyBorder()) UIManager.put("PopupMenu.border", BorderFactory.createEmptyBorder()) ... Quiero deshacerme de todo UIManager. calificadores, así:
UIManager.run { setLookAndFeel(getCrossPlatformLookAndFeelClassName()) put("ToolTip.border", BorderFactory.createEmptyBorder()) put("PopupMenu.border", BorderFactory.createEmptyBorder()) ... }Por supuesto, este código no compila. ¿Es posible lograrlo?
puede usar la palabra clave ' with ' para lograrlo. Esta es una de las funciones de alcance en Kotlin.
with(UIManager) { setLookAndFeel(getCrossPlatformLookAndFeelClassName()) put("ToolTip.border", BorderFactory.createEmptyBorder()) put("PopupMenu.border", BorderFactory.createEmptyBorder()) ... }En última instancia, espera algún tipo de función de alcance. Este artículo brinda una explicación detallada sobre el caso de uso para cada función de alcance en Kotlin. https://medium.com/@elye.project/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84