Mantener la selección después de hacer clic en un JButton al estilo de texto
Pregunta
Estoy haciendo un editor de texto bastante simple, y tengo una pregunta acerca de mis botones de estilo. Cuando resaltar el texto y haga clic en el botón de mi "negrita", las negritas de texto como se esperaba, pero mi selección ya no es visible. Todavía puedo sin negrita la selección, Cursiva, o subrayado, pero que simplemente no puede ver lo que está seleccionado. Por lo tanto, me pregunto si hay un ajuste que me permitirá hacer clic en el botón, pero guardo en mi selección? He intentado un JMenuItem en lugar de un JButton, y que parecía funcionar, pero luego hice mi mirada barra de herramientas bastante malo. Código de ejemplo a continuación.
//frame and pane creation up here
JToolBar tool = new JToolBar();
JToggleButton boldButton = new JToggleButton("Bold");
boldButton.addActionListener(new StyledEditorKit.BoldAction());
tool.add(boldButton);
Cualquier ayuda es apreciada.
Solución
Por lo tanto, me pregunto si hay un ajuste que me permitirá hacer clic en el botón, pero mantener mi selección?
boldButton.setFocusable( false );
Otros consejos
Como habrá notado, la selección está todavía allí, pero al hacer clic en el botón de la barra de herramientas elimina el enfoque desde el panel de texto y se esconde la selección. Es necesario ajustar la parte posterior de enfoque mediante requestFocus
. Sin embargo, tendrá que escribir su propio oyente de action para añadir el código de enfoque -. Se podría extender BoldAction
hacer esto