相关疑难解决方法(0)

重写到MVC后GUI无法正常工作

我正在练习MVC风格的编程.我在一个文件中有一个Mastermind游戏,工作正常(可能除了"Check"按钮在开始时不可见).

http://paste.pocoo.org/show/226726/

但是当我把它重写为模型,视图,控制器文件时 - 当我点击空Pin(应该更新,并重新绘制新颜色)时 - 注意到了.谁能在这里看到任何问题?我尝试在不同的地方放置repaint(),但它根本不起作用:/

主要:

public class Main { 
    public static void main(String[] args){
        Model model = new Model();
        View view = new View("Mastermind", 400, 590, model);
        Controller controller = new Controller(model, view); 
        view.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

型号:

import java.util.Random;

public class Model{
    static final int
    LINE = 5,
    SCORE = 10, OPTIONS = 20;
    Pin pins[][] = new Pin[21][LINE];
    int combination[] = new int[LINE];
    int curPin = 0;
    int turn = 1;
    Random generator = new Random(); …
Run Code Online (Sandbox Code Playgroud)

java model-view-controller user-interface swing

121
推荐指数
2
解决办法
4万
查看次数

Java MVC - 如何将完成的文本游戏划分为MVC?

现在坐在这里几个小时试图解决这个问题,所以对这个大问题有点同情.:)

目标:我只想将完成的代码分成MVC(模型视图控制器)部分.我已完成游戏逻辑并基于文本 - 代码工作正常.

问题:嗯,我想将这个代码实现到MVC中,但是在哪里解释它应该使用基于文本的MODEL?因为VIEW仅用于布局(图形化)正确吗?我真的很难搞清楚从哪里开始.任何指针都会很棒!

这是我的游戏逻辑代码:

import mind.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
import java.awt.*;

public class Drive {
String[] mellan;
boolean gameEnd, checkempty, checkempty2, enemy, enemy2;
String gr,rd,tom;
int digits;

public Drive() {
    // Gamepieces in textform
    gr="G"; rd="R"; tom=" ";


    mellan = new String[7];
    String[] begin = {gr,gr,gr,tom,rd,rd,rd};
    String[] end = {rd,rd,rd,tom,gr,gr,gr};

    //input
    Scanner in = new Scanner(System.in);

    mellan=begin;
    gameEnd=false;
    while (gameEnd == false) {
        for(int i=0; i<mellan.length; i++) {
            System.out.print(mellan[i]);
        }
        System.out.print("        Choose 0-6: …
Run Code Online (Sandbox Code Playgroud)

java model-view-controller

9
推荐指数
1
解决办法
6454
查看次数