要将 PaneWithList 中选定行的输出连接到输出中的 JTextPane,请考虑使用观察器图案。此设计模式涉及创建一个可观察类(例如 PaneWithList),该类在属性更改时通知其观察者(例如输出)。
1.将 PropertyChangeListener 添加到 PaneWithList:
class PaneWithList extends JPanel { ... private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); ... // Notify observers when the selected row changes protected void fireSelectedRowChanged(int oldValue, int newValue) { propertyChangeSupport.firePropertyChange("SELECTED_ROW", oldValue, newValue); } // Add a property change listener public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } }
2.创建观察者类输出:
class Output extends JTextPane implements PropertyChangeListener { ... // Handle property change events from `PaneWithList` @Override public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName().equals("SELECTED_ROW")) { int row = (int) e.getNewValue(); String selectedItem = paneWithList.getSelectedValue(); // Get the selected item from `PaneWithList` append(selectedItem + "\n"); // Display the selected item in the text pane } } }
3.建立观察者关系:
在 Main 类中,向 PaneWithList 添加观察者并将其连接到 Output 对象。
import java.beans.PropertyChangeListener; public class Main { ... public static void main(String[] args) { ... paneWithList.addPropertyChangeListener(new Output()); // Connect to `Output` ... } }
现在,当 PaneWithList 中选定的行发生变化时,Output 将会收到通知并将相应更新其文本。
以上是如何连接 JTextPane 以更新 PaneWithList 的选定行?的详细内容。更多信息请关注PHP中文网其他相关文章!