**如何分离Java的界面代码与业务代码** 可参考MVC模式或看看ejb中的设计模式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有几种方法1.创建扩展监听器接口的一个自定义类,在你的界面代码内使用 MyListener a = new MyListener(); itemNew.addActionListener(a); 这样就分成2个文件了,你可能看上去舒服点,维护也可能容易一些因为可以拥有自己的构造函数与各种属性,这样的监听器能够处理更复杂的事务比较适合复杂的事件处理,或者同时为多个组件提供服务的监听器2.还是一个文件,监听器作为内部类被声明 但是在事件触发时,执行在外部类中定义个一个方法, 因为匿名类是可以调用外部类属性和方法的,如:public void doAction(){ ....处理工作}itemNew.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ ...若干操作 doAction(); ...若干操作 }});这样,你只需要注意维护那个doAction就行了而且你能把多个内部监听类共有的代码分离出来作为一个方法来维护这样比较适合较小并且事件处理不复杂的程序 Adapter 模式就很适合。你可以继承相应的Adapter, 写你需要的部分。 按 fdabobi(小爪尖尖) 的第一种方法就可以MyListener a = new MyListener(); itemNew.addActionListener(a);其中public class MyListener implements ActionListener,MouseListener{ public void mousePressed(MouseEvent e) { //do something } public void actionPerformed(ActionEvent e){ //do something } //other methods.......} 按apollo333()所说的方法有一个问题,如果要改访问界面代码中的其它元素(如要改变界面中其它组件的状态),就不能声明为private的,是不是破坏了封装了呢? 如果你试着去用STRUTS,一切问题都解决了 可是对STRUCTS了解不多,也没有时间看了...这个复杂吗? struts很简单的,好好看看几天就能理解的很好了! 建议先学习JavaBean,再深入点到EJB,到时候,你就自然知道了! 不用那么悬浮的 MVC struts之类的。问的是图形界面的问题。 用点设计模式就可以了! 看看这个 mediatorpublic class Mediator implements ActionListener{ protected JFrame gui; public void actionPerformed(ActionEvent e) { ... } public addToMediator(JFramegui) { this.gui = gui; }}/////////////////////////public class Test extends JFrame{ Mediator mediator; JButton button; public void Test(){ button = new JButton("..."); button.addActionListener(mediator); } public static void main(){ ... }}给你一个简单的例子。自己动动脑筋改改,同一个界面就可以做不同的事了,只要换一个mediator.至少这个样子可以让你把界面和功能分开。 TO superman421(38度的雪) :还有一点不明白,就是在上例的Mediator类中,如何才能改变界面呢?(如界面中按钮以及TextField的状态等...)...是不是还要在Mediator的构造器中传入Test的引用呢? timer的停止问题 java连接sql数据库问题 java 应用程序怎么连接sql server 2000数据库 关于一个 BufferedReader 的问题 问个与jstl和hibernate有关的问题 高分请教JTable问题? 怎樣去掉左上方的icon? 想做一个TicTacToe的游戏,怎么设计电脑的AI? 請大家提點,我可是初學者. 大佬们,mysql装不上,好像需要什么插件。谁有啊 老师给的题目,网上不好找,各位老大帮帮忙 readInt()读出来的是高位在前,地位在后,可我要读的文件全是高位在后地位在前,怎么办?
1.创建扩展监听器接口的一个自定义类,在你的界面代码内使用
MyListener a = new MyListener();
itemNew.addActionListener(a);
这样就分成2个文件了,你可能看上去舒服点,维护也可能容易一些
因为可以拥有自己的构造函数与各种属性,这样的监听器能够处理更复杂的事务
比较适合复杂的事件处理,或者同时为多个组件提供服务的监听器2.还是一个文件,监听器作为内部类被声明
但是在事件触发时,执行在外部类中定义个一个方法,
因为匿名类是可以调用外部类属性和方法的,如:
public void doAction(){
....处理工作
}
itemNew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
...若干操作
doAction();
...若干操作
}
});
这样,你只需要注意维护那个doAction就行了
而且你能把多个内部监听类共有的代码分离出来作为一个方法来维护
这样比较适合较小并且事件处理不复杂的程序
MyListener a = new MyListener();
itemNew.addActionListener(a);其中
public class MyListener implements ActionListener,MouseListener{ public void mousePressed(MouseEvent e) {
//do something
} public void actionPerformed(ActionEvent e){
//do something
} //other methods.......
}
问的是图形界面的问题。
用点设计模式就可以了! 看看这个 mediatorpublic class Mediator implements ActionListener{
protected JFrame gui; public void actionPerformed(ActionEvent e)
{
...
}
public addToMediator(JFramegui)
{
this.gui = gui;
}
}/////////////////////////
public class Test extends JFrame
{
Mediator mediator;
JButton button;
public void Test(){
button = new JButton("...");
button.addActionListener(mediator);
} public static void main(){
...
}
}给你一个简单的例子。自己动动脑筋改改,同一个界面就可以做不同的事了,只要换一个mediator.
至少这个样子可以让你把界面和功能分开。
还有一点不明白,就是在上例的Mediator类中,如何才能改变界面呢?(如界面中按钮以及TextField的状态等...)...是不是还要在Mediator的构造器中传入Test的引用呢?