在Java中轻松实现界面跳转[Java编程]
本文“在Java中轻松实现界面跳转[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
假定这样一种情形,我们的系统的界面利用javax.swing包构建,界面的底子是BaseView,他是一个容器,当然他该当供应获得控件元素的功效,比方得到按钮,下拉框,表格等,当然仅仅是一个容器罢了,而我们的界面的元素全部布置在JPanel上.
描写为:
一个界面就是一个BaseView,他只包含一个JPanel,这个包含JPanel包含全部我们的Swing控件,比方JButton,JLable等等.
问题呈现了:我们普通因为业务的需求完成一个界面的操作要自动跳转到下一个界面,完成下一个界面又能跳回来(题外话:由于我们的操作是基于GUI的,所以常常能保存Session信息,而Web却做不到),而这常常成为系统实现历程中效率低下的一个因素,我就见到我目前的系统中有人用600行代码判断上一个界面应当是哪一个来跳转过来,因为很多界面都可以跳到当前界面.
当然有一种做法是,在下一个界面类中包含指向上一个界面的变量,我们说,这不便利,也增添了依靠性,这对软件是不利的.
接下来,我给出我的办理办法,但愿对采取这种界面构造的朋友有所裨益.
(以下全部用简化模子来报告.)
1.简单点,我们假定BaseView担当JWindow,当然可以是别的容器(根据你的实现),大约象这样:
public abstract class BaseView extends JWindow{
...
(实现一些获得界面控件,和界面信息的办法).
}
2.每个界面类都象这样定义:
public class MyView extends BaseView{
JPanel myPanel;
public void playoutPanel(){
JButton myButton = new JButton("OK");
myPanel.add(myButton);
......
(增添你需求的控件和筹划到myPanel上)
}
}
3.假定有其他的界面OneView,TwoView,ThreeView处理完操作后都需求跳转到myView,在myView中的ok按钮按下的时刻需求回到原始界面.
本来臃肿的代码需求在myView中增添一个变量BaseView anyView;用来存放转来的那个界面anyView,赋值在三者中的跳转代码中引用myView来设定.跳转代码象这样:
public void jump(){
MyView myView = new MyView();
myView.anyView = this;
this.remove(this.xxPanel);
this.add(myView.getPanel());
this.repaint();
}
看起来还不错,固然需求引用MyView类,并调用他的变量和办法.但是跳转回来却不那么简单,不然怎么会用600行!
大约象这样:(这已经是被我简化的)
public void goBack(){
if(anyView instanceof OneView){
anyView.remove(this.myView);
OneView ov = (OneView)anyView;
anyView.add(ov.getPanel());
anyView.repaint();
}
if(anyView instanceof TwoView){
....
}
...
}
以上是“在Java中轻松实现界面跳转[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |