java使用MVC編程模型實現1+到100圖形界面


  1. MVC概念

MVC編程模型是可以說從提出到現在經久不敗,是一種先進的設計結構。能很好的體現個人分工,從而實現前后端分離。

M(Model):模型:存儲數據的對象。后端操作數據庫的。

V(View):視圖:為模型提供數據顯示對象。前端頁面顯示。

C(Controller):控制器:處理用戶的交互操作,對於用戶的操作做出響應。讓模型和視圖進行必要的交互;即通過視圖修改,獲取模型中的數據;當模型中的數據變化時,讓視圖更新顯示。

2.java圖形界面


通過圖形用戶界面GUI(Graphics User Interface),用戶和程序之間可以方便的進行交互。GUI提供一個與操作系統交互的容器,JFrame窗口。

3.實例結果

4.代碼

Model1.java

package view;
public class Model1 {
    int sum=0;
    int calculate(int startNumber,int endNumber){
        for (startNumber=startNumber;startNumber<=endNumber;startNumber++)
        {
            sum=sum+startNumber;
        }
        return sum;
    }

}

View1.java

package view;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class View1 extends  JFrame {
    //this is view need  a few of components
    JLabel startLabel,endLabel;//標簽
    JTextField textStartNumber,textEndNumber;//文本框
    JTextArea sumTextArea;
    JButton jButton;//按鈕
    JScrollPane jScrollPane;//容器,滾動窗格,放入內容

    void init(){
        //1.布局
        setLayout(new FlowLayout());
        setTitle("MVC計算開始到結束+1數值之和");
        setBounds(450,100,600,300);
        startLabel=new JLabel("開始數據");
        add(startLabel);
        textStartNumber=new JTextField(5);
        add(textStartNumber);
        JLabel endLabel=new JLabel("結束數據");
        add(endLabel);
        textEndNumber=new JTextField(10);
        add(textEndNumber);
        jButton=new JButton("求和");
        add(jButton);
        sumTextArea=new JTextArea(10,50);
        add(sumTextArea);
        add(new JScrollPane(sumTextArea));

        //設置監聽器
        Controller1 controller1=new Controller1();
        controller1.setTextStartNumber(textStartNumber);
        controller1.setTextEndNumber(textEndNumber);
        controller1.setSumTextArea(sumTextArea);

        //添加監聽器
        jButton.addActionListener(controller1);

    }
    //視圖展示
    public View1(){
        init();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Controller1.java

package view;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Controller1 extends JFrame implements ActionListener {
    JTextField textStartNumber,textEndNumber;
    JTextArea sumTextArea;
    void setTextStartNumber(JTextField textStartNumber){
        this.textStartNumber=textStartNumber;
    }
    void setTextEndNumber(JTextField textEndNumber1){
        this.textEndNumber=textEndNumber1;
    }
    void setSumTextArea(JTextArea sumTextArea){
        this.sumTextArea=sumTextArea;
    }
    /*
    * 重寫接口
    * */
    public void actionPerformed(ActionEvent e){
        int start=Integer.parseInt(textStartNumber.getText());
        int end=Integer.parseInt(textEndNumber.getText());
        Model1 model1=new Model1();
        int sum=model1.calculate(start,end);
        sumTextArea.append("開始數據"+start+"不斷+1"+"直到結束數據"+end+"的和:"+sum+"\n");
    }
}

Main.java

package view;

public class Main {
    public static void main(String args[]){
        View1 view1=new View1();
    }
}

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM