2011-12-30 27 views
5

Cómo cambiar el STYLE del Font al hacer clic en un JButton?Cambiar el estilo de fuente al hacer clic en un JButton Java

estoy tratando de tener 3 botones cada uno labra cambio a PLAIN o BOLD o ITALIC

He leído el font Class API pero no hay nada como setStyle sólo getStyle

puedo encontrar la clase de fuente en Java es bastante complicado más de lo que debería: S.

+1

Véase también http://stackoverflow.com/questions/8675038/increasing-decreasing-font-size-inside-textarea-using-jbutton para una pregunta muy similar – Robin

Respuesta

13

Debería llamar al setFont(...) not setStyle.

Por ejemplo, si desea mantener el mismo tipo de letra, pero cambiar el estilo de un JTextField llamado "campo" que podría hacer algo como:

field.setFont(field.getFont().deriveFont(Font.BOLD)); 

Editar
Para establecer la fuente a la vez negrita y cursiva, usted o los mapas de bits:

field.setFont(field.getFont().deriveFont(Font.BOLD | Font.ITALIC)); 

Tenga en cuenta que este utiliza el bit a bit OR inclusivo operador que utiliza un único símbolo de canalización: | en lugar del tha n el operador OR lógico que utiliza un símbolo de doble tubería: ||.

También tenga en cuenta para una mayor sutileza y la confusión que | puede ser utilizado como un operador lógico OR, pero por lo general va prefiere utilizar || para este puesto que éste es un operador de "cortocircuito" en que si la mano izquierda lado de la expresión es cierto, el lado derecho ni siquiera se evalúa.

+0

¡increíble! entonces tenemos que 'configurarFont' cada vez que queremos editar cualquier parámetro. Traté de usar el 'deriveFont' antes, pero no sabía cómo usarlo. Ahora está completamente claro :) ¡Gracias @Hovercraft! – Sobiaholic

+0

Tengo una pregunta, ¿qué tal si quiero que el texto sea 'ITALIC' y' BOLD'? – Sobiaholic

+0

@iMohammad: ver la edición anterior. –

4

Obtenga la Fuente actual, use deriveFont para obtener una Fuente nueva similar a la actual pero con un nuevo estilo, y aplique la nueva fuente.

+0

Gracias :) Lo leí antes de publicarlo pero no estaba claro. ¡Gracias a @Hovercraft su ejemplo me ayudó mucho! – Sobiaholic

3

puede hacerlo como sigue

JButton myButton=new JButton(); 
myButton.setText("My Button"); 
myButton.setFont(new Font("Serif", Font.BOLD, 14)); 
2

Como alternativa, es posible mirar las acciones StyledEditorKit disponibles a JEditorPane. Hay un ejemplo relacionado here y un tutorial here.

Cuestiones relacionadas