java Swing 中的MVC模式

最近接触到一点关与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:转载请标明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值