运行环境:ecplipse ,安装VE插件,要同时安装GEF-runtime,和emf-runtime
第一个Swing 程序
1:new java-visualclass-Application (实际上就是一个frame)
2. new AddPanel, new ListPanel 。。。。 new User,
3 假设ListPanel 就是App 的mainFrame, 那么怎么切换frmae自带的panel 为ListPanel 呢?
在App 里
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
//new ListPanel 里面传递的参数是listPanel与其他Panel转换用的
this.jContentPane.add(new ListPanel(this.jFrame));
}
return jContentPane;
}
4.在ListPanel里点button”增加”转换到AddPanel
Button的事件监听的处理方法为toAdd();
public void toAdd(){
this.mainFrame.getContentPane().removeAll();
this.mainFrame.add(new AddPanel(this.mainFrame));
this.mainFrame.validate();
}
ListPanel的构造方法增加参数,取得frame的实例
private JFrame mainFrame = null;
public ListPanel(JFrame mainFrame) {
super();
this.mainFrame = mainFrame;
//this.user = user;
initialize();
}
5.怎么样取得页面元素的值呢?假设是UserName 和Password
在AddPanel理 提交的事件处理方法为 toSubmit();
public void toSubmit(){
String userName = this.jTextField_userName.getText();
String password = this.jPasswordField_password.getText();
User user = new User();
user.setUserName(userName);
user.setPassword(password);
this.jFrame.getContentPane().removeAll();
this.jFrame.add(new ListPanel(this.jFrame));
this.jFrame.validate();
}
6.listPanel如何展示取得的值呢/
在User类中,userName 和password 都是静态的,所以只有一份
在listPanel中
private JTextField getJTextField_userName() {
if (jTextField_userName == null) {
jTextField_userName = new JTextField();
jTextField_userName.setBounds(new Rectangle(239, 135, 150, 47));
}
if(user == null){
jTextField_userName.setText("");
}
//取得userName,类似可以取得password
jTextField_userName.setText(user.getUserName());
return jTextField_userName;
}
浙公网安备 33010602011771号