を使用する必要がありますか、またはcamickr が提案するJFormattedTextFieldように を使用できますか? 何を使っていますか?JTextFieldDocumentListenerFormatter
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を選択することをお勧めします)。FormatterStringJTextFieldDocumentListenerFormatter
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());