- 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(); } }