设为首页 加入收藏

TOP

Swing中使用Bean Binding实例(一)
2014-11-23 17:34:53 】 浏览:733
Tags:Swing 使用 Bean Binding 实例

最近在做一个Java Swing的小程序,试了一下Bean Binding,需要用到的lib有两个,appframework-1.03.jar和beanbind-1.2.1.jar. 完整代码如下:


Entrance.java


package main;


import swing.MainFrame;


public class Entrance {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MainFrame mf = new MainFrame();
mf.setup();
}
}


Entity.java


package bean;


import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;


public class Entity {
private String inputtext;


private PropertyChangeSupport changeSupport=new PropertyChangeSupport(this);
public String getInputtext() {
return inputtext;
}


public void setInputtext(String inputtext) {
String oldText=this.inputtext;
this.inputtext = inputtext;
changeSupport.firePropertyChange("inputtext", oldText, inputtext);

}


public void addPropertyChangeListener(PropertyChangeListener listener){
changeSupport.addPropertyChangeListener(listener);
}

public void removePropertyChangeListener(PropertyChangeListener listener){
changeSupport.removePropertyChangeListener(listener);
}
}


MainFrame.java


package swing;


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


import javax.swing.JFrame;



public class MainFrame {
private JFrame frame;
public void setup(){
frame=new JFrame();
frame.setPreferredSize(new Dimension(600,400));
frame.getContentPane().add(new MainWindow().createPanel(),BorderLayout.CENTER);
frame.setVisible(true);
frame.addWindowListener(new windowEventHandler());
}
class windowEventHandler extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.out.println("Exit");
System.exit(0);
}
}
}


MainWindow.java


package swing;


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;


import org.jdesktop.beansbinding.AutoBinding;
import org.jdesktop.beansbinding.BeanProperty;
import org.jdesktop.beansbinding.Bindings;
import org.jdesktop.beansbinding.AutoBinding.UpdateStrategy;


import bean.Entity;


public class MainWindow implements ActionListener {
private JPanel mainPanel;
private JTextField textField;
private JButton button;
public final static Entity entity = new Entity();


public JPanel createPanel() {
mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
mainPanel.setPreferredSize(new Dimension(300, 200));
textField = new JTextField();


BeanProperty inputtextProperty = BeanProperty
.create("inputtext");
BeanProperty textProperty = BeanProperty
.create("text");


/* From java bean to swing component */
AutoBinding
binding1=Bindings.createAutoBinding(UpdateStrategy.READ_WRITE,
entity, inputtextProperty, textField, textProperty);


/* From swing component to java bean */
//AutoBinding binding2 = Bindings
// .createAutoBinding(UpdateStrategy.READ_WRITE, textField,
// textProperty, entity, inputtextProperty);
binding1.bind();
//binding2.bind();
mainPanel.add(textField, BorderLayout.CENTER);
button = new JButton("Change Text");
button.addActionListener(this);


mainPanel.add(button, BorderLayo

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇jQuery中的trigger()和preventDef.. 下一篇Swing中常用的复杂继承关系测试实..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目