以下是使用Java创建JFrame和可观察对象的示例代码: ```java import java.util.Observable; import java.util.Observer; import javax.swing.JFrame; import javax.swing.JLabel; public class ObservableExample extends Observable { private String message; public void setMessage(String message) { this.message = message; setChanged(); notifyObservers(); } public String getMessage() { return message; } public static void main(String[] args) { ObservableExample observable = new ObservableExample(); JFrame frame = new JFrame("Observable Example"); JLabel label = new JLabel("No message yet"); frame.add(label); frame.pack(); frame.setVisible(true); observable.addObserver(new Observer() { @Override public void update(Observable o, Object arg) { label.setText(((ObservableExample) o).getMessage()); } }); observable.setMessage("Hello, world!"); } } ``` 在这个示例中,我们创建了一个名为`ObservableExample`的可观察对象,并在其中定义了一个`message`属性。当`message`属性被设置时,我们调用`setChanged()`方法来标记对象已经改变,并调用`notifyObservers()`方法来通知所有观察者对象。 我们还创建了一个`main()`方法,在其中创建了一个`JFrame`和一个`JLabel`,并将`JLabel`添加到`JFrame`中。我们还创建了一个观察者对象,并将其添加到可观察对象中。当可观察对象的`message`属性被设置时,观察者对象的`update()`方法将被调用,并更新`JLabel`的文本。 最后,我们调用`setMessage()`方法来设置`message`属性,并观察`JLabel`的文本被更新为`Hello, world!`。