Ok, jumping for him :-)
Suppose the question
How to adjust the width of a JTextField so that it always matches its width of the content?
Ordinary collaborators
- LayoutManager, which determines the sizes of its children by the size of pref, fi FlowLayout
- JTextField reports its pref size corresponding to the content
- automatic makeup expected.
Quick example:
JTextField field = new JTextField("something");
JComponent parent = new JPanel();
parent.add(field);
frame.add(parent);
frame.setSize(400, 400);
type... : . : - - . , (: - DocumentListener) :
final JTextField field = new JTextField("something");
DocumentListener l = new DocumentListener() {
private void updateField(JTextField field)
field.revalidate();
}
@Override
public void removeUpdate(DocumentEvent e) {
updateField(field);
}
@Override
public void insertUpdate(DocumentEvent e) {
updateField(field);
}
@Override
public void changedUpdate(DocumentEvent e) {
}
};
field.getDocument().addDocumentListener(l);
JComponent parent = new JPanel();
parent.add(field);
frame.add(parent);
frame.setSize(400, 400);
@Gagandeep Bali , , :
private void updateField(JTextField field) {
field.getParent().revalidate();
}
, - ? : , validateRoot? api doc:
, , , JViewport, false.
, : , validateRoot. false:
JTextField field = new JTextField("something") {
@Override
public boolean isValidateRoot() {
return false;
}
};
JComponent parent = new JPanel();
parent.add(field);
frame.add(parent);
frame.setSize(400, 400);
, - , . true, , .