Java Swingでコンポーネントの値を変更する方法
Java Swingコンポーネントの値を変更するには次の方法を使用できます。
- それぞれのSwingコンポーネントには、その値を設定するセッターメソッドがあります。たとえば、JLabelの場合はsetText()メソッドでテキストを設定できますし、JTextFieldの場合はsetText()メソッドでテキストフィールドのテキストを設定できます。
JLabel label = new JLabel();
label.setText("New Value");
JTextField textField = new JTextField();
textField.setText("New Value");
- Swing コントロールのプロパティを直接操作する: Swing コントロールのプロパティは直接アクセスして変更できます。JLabel コントロールの text プロパティの場合、直接値を代入して変更できます。
JLabel label = new JLabel();
label.text = "New Value";
- データバインディングを使用する:データバインディングフレームワークを使用して、コントロールの値をデータモデルに動的にバインドできます。データモデルの値が変更されると、コントロールの値も自動的に更新されます。Javaでよく使用されるデータバインディングフレームワークには、JavaFXのバインディングメカニズムやJGoodiesなどがあります。
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public class DataModel {
private String value;
private PropertyChangeSupport pcs = new PropertyChangeSupport(this);
public String getValue() {
return value;
}
public void setValue(String newValue) {
String oldValue = value;
value = newValue;
pcs.firePropertyChange("value", oldValue, newValue);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
pcs.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
pcs.removePropertyChangeListener(listener);
}
}
// 绑定数据模型到控件
JLabel label = new JLabel();
DataModel dataModel = new DataModel();
dataModel.addPropertyChangeListener(evt -> {
if (evt.getPropertyName().equals("value")) {
label.setText((String) evt.getNewValue());
}
});
// 修改数据模型的值
dataModel.setValue("New Value");
Java Swingコントロールの値を変更する一般的な方法は上記の通りであり、具体的なニーズに応じて適切な方法を選択できます。