最近接触到一点关与java swing的MVC模式的设计具体好处和概念 就不在赘述类 ,直接上代码
1视图
//构建一个GUI界面
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MyView
{
JButton button=new JButton("测试按钮");
JTextArea text= new JTextArea("这是文本域");
MyView(MyModel model){
JFrame frame=new JFrame();
frame.setSize(600,400);
frame.add("North",button);
frame.add("Center",text);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void addMultiplyListener(ActionListener mal) {
button.addActionListener(mal);
System.out.println("注册监听成功");
}
void reset() {
text.setText("hdsjkhvfdjk");
}
void setnewString(String newString) {
text.setText(newString);
}
}
2控制
import java.awt.event.*;
import java.util.Random;
public class MyController {
//控制器需要交互模型和视图。
private MyModel m_model;
private MyView m_view;
/** 构造函数 */
MyController(MyView view,MyModel model) {
m_model = model;
m_view = view;
//将侦听器添加到视图中
view.addMultiplyListener(new MultiplyListener());
// view.addClearListener(new ClearListener());
}
class MultiplyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("监听事件被触发");
int number = new Random().nextInt(10) + 1;
m_model.addnewString(number+"");
m_model.getValue();
m_view.setnewString(m_model.getValue());
}
}
}
3模型
class MyModel{
String addstr;
MyModel() {
System.out.println("这是模型");
}
public void addnewString(String operand) {
String str="this is ";
addstr=str+operand;//模型中存放具体的操作
}
public String getValue() {//获取模型中的值
return addstr.toString();
}
}
4主类
import javax.swing.*;
class MyMVC {
public static void main(String[] args) {
MyModel model = new MyModel();
MyView view = new MyView(model);
MyController controller = new MyController(view,model);
}
}
PS:转载请标明出处