を使用する必要がありますか、またはcamickr が提案するJFormattedTextField
ように を使用できますか? 何を使っていますか?JTextField
DocumentListener
Formatter
propertyChange()
プロパティが変更されたときに実行されるのは、メソッド内のコードのみです。artistField
そのため、そのメソッドから更新する必要があります。また、実際のコンテンツではなくテキストのみを更新するため、代わりにJFormattedTectFields
使用して更新する必要があります。setValue()
setText()
setText()
この PropertyChangeListener を試してください:
titleField.addPropertyChangeListener("value", new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e){
Object source = e.getSource();
if (source == titleField) {
String title = (String)titleField.getValue();
artistField.setValue(title);
}
}
});
を処理できる がJFormattedTextField
必要です。これは、同じ文字列を返すだけのばかげたフォーマッタです ( aが必要ない場合は、a と aを選択することをお勧めします)。Formatter
String
JTextField
DocumentListener
Formatter
class StringFormatter extends AbstractFormatter {
@Override
public Object stringToValue(String text) throws ParseException {
return text;
}
@Override
public String valueToString(Object value) throws ParseException {
return (String)value;
}
}
JFormattedTextField
次のように初期化するときに使用します。
JFormattedTextField titleField = new JFormattedTextField(new StringFormatter());