My question is self explanatory: how to center the text of a JSpinner? the methode setHorizontalAligment is not there. I also tried setAlignmentX, still nothing... Any help would be appreciated c:
how to center text of a JSpinner
Asked Answered
JSpinner
is a container of other components, one of which is a the editor.
JSpinner spinner = ...;
JComponent editor = spinner.getEditor();
But that doesn't help us, as setHorizontalAligment
isn't a method of JComponent
.
You can then inspect the editor
type of component it is...
if (editor instanceof JSpinner.DefaultEditor) {
If it's a JSpinner.DefaultEditor
, you can cast it and use setHorizontalAlignment
...
JSpinner.DefaultEditor spinnerEditor = (JSpinner.DefaultEditor)editor;
spinnerEditor.getTextField().setHorizontalAlignment(JTextField.CENTER);
Potentionally you may also need to check for JTextField
as well, but if you're using the default editor models, it would normally return JSpinner.DefaultEditor
sadly, the JSpinner doesn't seem to have an instance of JTextField... But thanks for the quick answer! –
Schauer
Thanks you very much! This worked just fine! I hated the text to be on the right somehow. Thanks again! :) –
Schauer
@Schauer Yeah, love spinners :P –
Lecturer
I'd like to add a couple of things to this answer: 1) The reason for this behavior is that apparently the
JSpinner
component creates its internal TextField
using the parent control’s property values when it is first rendered, and then ignores changes to the parent property values. 2) If working with JComponents in MATLAB, it is sufficient to call e.g. jSpinner.getEditor.getTextField.setHorizontalAlignment(javax.swing.JTextField.LEFT);
to get the desired effect. –
Atalie jSpinner.getEditor.getTextField.setHorizontalAlignment(javax.swing.JTextField.LEFT);
... which is basically what the answer says –
Lecturer © 2022 - 2024 — McMap. All rights reserved.