如何监听jpanel数组中的某一个值
时间: 2023-06-20 13:07:33 浏览: 51
要监听JPanel数组中的某一个值,可以使用Java中提供的PropertyChangeListener。每个JPanel都可以添加一个PropertyChangeListener,当数组中该JPanel的某一个值发生变化时,就会触发该JPanel上的PropertyChangeListener。
下面是一个简单的示例代码:
```java
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class JPanelArrayDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("JPanel Array Demo");
JPanel[] panels = new JPanel[3];
for (int i = 0; i < panels.length; i++) {
panels[i] = new JPanel();
panels[i].addPropertyChangeListener(new MyPropertyChangeListener(i));
frame.add(panels[i]);
}
frame.pack();
frame.setVisible(true);
}
private static class MyPropertyChangeListener implements PropertyChangeListener {
private int index;
public MyPropertyChangeListener(int index) {
this.index = index;
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("myProperty")) {
System.out.println("JPanel " + index + " property changed to " + evt.getNewValue());
}
}
}
}
```
在上面的示例中,我们创建了一个JFrame并向其中添加了三个JPanel。每个JPanel都添加了一个PropertyChangeListener,当其myProperty属性发生变化时,就会触发该JPanel上的PropertyChangeListener,然后在控制台输出该JPanel的索引和新值。当需要将某个JPanel的myProperty属性设置为新的值时,只需要调用该JPanel的setProperty方法即可。例如,panels[1].setProperty("myProperty", "new value")。