首页 > Java > java教程 > 如何连接 JTextPane 以更新 PaneWithList 的选定行?

如何连接 JTextPane 以更新 PaneWithList 的选定行?

Patricia Arquette
发布: 2024-11-30 02:20:10
原创
642 人浏览过

How to Wire a JTextPane to Update with PaneWithList's Selected Row?

如何将一个窗格连接到另一个窗格:将输出连接到 paneWithList

要将 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板