- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试将 JList
绑定(bind)到绑定(bind)类属性 Vector
。在绑定(bind)类中,当 UI 中的 JTextField
更新时,Vector
也会更新。
public void setName(String name) {
String oldName = this.name;
this.name = name;
Vector oldList=this.list;
list.add(name);
propertySupport.firePropertyChange("name", oldName, this.name); //textField updates
propertySupport.firePropertyChange(PROP_LIST, oldList, list); // JList
}
还有另一个单独的 setter 可用于更新 Vector
。我也设置了添加/删除 PropertyChangeListeners。
我真正的需求是根据BeanBinding
类中的数据更新JList
。例如,当用户输入JTextField
时,数据库中的相关数据和类中已有的变量应该加载到JList
中。
请告诉我如何在 NetBeans 中为 JList
绑定(bind)数据 BeanBinding
类(源)属性。至少任何教程链接。 NetBeans 站点中有一个示例,但它用于直接从数据库中获取数据。
最佳答案
不了解 Netbeans,只是简单的编码 :-) 在那里,将您的列表包装到一个 ObservableList 中,并对 observable 进行所有更改应该有效。这是一个可运行的代码片段(抱歉太长了,现在没有精力将其剥离)
public class SimpleListBinding {
@SuppressWarnings("unused")
private static final Logger LOG = Logger
.getLogger(SimpleListBinding.class.getName());
private JComponent content;
private JList list;
private JTextField textField;
private List<MyBean> beanList;
private JButton modifyButton;
private JButton addButton;
/**
* Binds list and simple properties.
*/
private void bindBasics() {
BindingGroupBean context = new BindingGroupBean();
JListBinding listBinding = SwingBindings.createJListBinding(UpdateStrategy.READ_WRITE,
beanList, list);
listBinding.setDetailBinding(BeanProperty.create("value"));
context.addBinding(listBinding);
context.addBinding(Bindings.createAutoBinding(UpdateStrategy.READ_WRITE,
list, BeanProperty.create("selectedElement.value"),
textField, BeanProperty.create("text")));
context.bind();
Action action = new AbstractAction("programatically change") {
public void actionPerformed(ActionEvent e) {
int selectedBean = list.getSelectedIndex();
if (selectedBean < 0) return;
MyBean bean = beanList.get(selectedBean);
bean.setValue(bean.getValue() + "*");
}
};
modifyButton.setAction(action);
Action add = new AbstractAction("add bean") {
int count = 0;
@Override
public void actionPerformed(ActionEvent e) {
beanList.add(new MyBean("added: " + count++));
}
};
addButton.setAction(add);
}
private void initData() {
MyBean[] beans = new MyBean[] {
new MyBean("first"), new MyBean("second"), new MyBean("third")
};
beanList = ObservableCollections.observableList(new ArrayList(Arrays.asList(beans)));
}
public static class MyBean extends AbstractBean {
private String value;
private boolean active;
public MyBean(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
Object old = getValue();
this.value = value;
firePropertyChange("value", old, getValue());
}
public void setActive(boolean active) {
boolean old = getActive();
this.active = active;
firePropertyChange("active", old, getActive());
}
public boolean getActive() {
return active;
}
}
private JComponent getContent() {
if (content == null) {
initComponents();
content = build();
initData();
bindBasics();
}
return content;
}
private JComponent build() {
JComponent comp = Box.createVerticalBox();
comp.add(new JScrollPane(list));
comp.add(textField, BorderLayout.SOUTH);
comp.add(modifyButton);
comp.add(addButton);
return comp;
}
private void initComponents() {
list = new JList();
textField = new JTextField();
modifyButton = new JButton("modify programmtically");
addButton = new JButton();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final JXFrame frame = new JXFrame("List binding", true);
frame.add(new SimpleListBinding().getContent());
frame.pack();
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
编辑:用 JList 替换 JXList(行为上没有区别,只是为了使其可编译:-)
关于java - 如何将 JList 绑定(bind)到 Bean 类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7411497/
有什么区别 和 您能解释一下这两者之间有什么区别吗? 最佳答案 它是一个 XML 命名空间,用于分隔可能存在冲突的元素名称,因此没有真正的区别。 XML Namespaces 关于java -
我刚刚浏览了两个 Web 应用程序,在两个项目的“applicationContext.xml”文件中都有一个标记 ... 另一个是 ... 谁能给我解释一下有什么区别吗? 最佳答案 没有语
我一直在尝试了解 WebSphere Commerce 中的 Java bean,但我真的很困惑。请帮帮我。我需要知道: What is the difference between EntityBe
自从我们更新到 grails 2.0.1(从 2.0.0 开始)以来,通过 bean 字段显示的所有 bean 都错误地显示为“withBean”字段的第一个属性。在我下面发布的示例中,所有 [fir
我有一个 bean,我将另一个 beanlist 放入其中,并且我想访问该内部 bean。 我的第一个 Bean 是: public class FirstDTO { private String F
我正在尝试将 CSS 和 JS 添加到 spring MVC 项目中的 JSP 页面,以便我在 dispatcher-servlet.xml 中包含了 js/css 文件夹的引用,如下所示:
当我将请求传递给 RestController 时,出现以下错误。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreExcept
我看到很多示例将 bean 标记为实体 bean (@Entity) 和命名 bean (CDI),以避免创建 2 个类(托管 bean 和实体 bean)并利用 Bean 验证以便可以执行验证在客户
在我的理解中, session 总是意味着有状态。考虑 servlet session 对象, 想想 cookie。如果 session 是无状态的,我认为我们根本不需要 session 。 在jee
我完全是Spring框架的初学者。我当时正在玩一个创建对象实例的示例。因此需要您的帮助! 看看这个例子: MainApp.java: import org.springframework.contex
这个问题在这里已经有了答案: What is a JavaBean exactly? (23 个回答) 关闭 7 年前。 我已经阅读了有关 EJB、Java Beans 的内容,但是我仍然对“bea
我刚开始使用 Spring-Framework,实际上我正在使用 spring-boot 库。我有以下问题: 我知道在 @Configuration 类中使用 @Bean 注册的 bean 默认是单例
我对下面提到的场景中使用Spring Framework时会创建的实例数量有疑问: bean配置是这样的 or 默认情况下,bean "a"有 singleton scope .所以
在我的 Spring-Module.xml 中,我有两个 bean: ... ... 我像这样实例化我的类: Applicat
@Autowired private Map departments; 我的 spring 配置文件 只要使用 @Autowired 需要日期,它就可以正常工作 同样, 如何使用没有属性
我已经为 ComboBox 设置了 ContainerDataSource this.comboBox.setContainerDataSource(container)。这个容器是一个 BeanIt
为了支持流畅的编程风格,我最近修改了我们的 Java Beans setter 方法以返回 Bean 类。但是现在 Java Beans Activation Framework (rel 1.1)
有人可以告诉我在我的 ApplicationContext 中我必须使用 beans:bean 而不是 bean 的什么以及如何修复它。
我有如下配置: batch:job id="reconciliationJob" job-repository="jobRepository" restartable="true" 在应用程序上下文启
我已经为 Test_flow 创建了简单的测试套件,但是当我尝试运行该流程时出现错误。 java.lang.RuntimeException: org.mule.api.config.Configur
我是一名优秀的程序员,十分优秀!