⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainview.java

📁 绝对经典!好动西和大家一起分享 呵呵 你们不应该如此限制的,不好
💻 JAVA
字号:
/* MainView - Top level view/controller for the MovieCat * * This is the main view/controller. * The main view/controller interacts with the model for * the global commands like open and save list in a file. * Copyright (c) 2001, Bruce E. Wampler */import java.io.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.filechooser.*;public class MainView extends WmvcView{    private JFileChooser fc;	// instance of a file chooser    private MovieEditor theMovieEditor; // instance of editor    private MovieModel myModel;	// local copy of model reference        public MainView()    {	myModel = (MovieModel) WmvcApp.getModel();	myModel.addView(this);	// Create file chooser dialog. We will tell it to open	// in the "user.dir" directory, which will usually be	// the "current directory" when the program was started.	// This will let the user use the "Start In" setting 	// on Windows, for example.	fc = new JFileChooser(  // file chooser in current dir.	           new File(System.getProperty("user.dir")));	createControls(); // Create controls - menus,toolbar	theMovieEditor = MovieEditor.getInstance();  // editor	theMovieEditor.initialize();    }    public boolean closingCurrentMovie(boolean ask)    {	// Check if current movie has changed, ask if want to	// save. Returns true if saved or didn't want to save,	// false if save fails or user cancels.	if (myModel.getEditsMade())	{	    if (ask)		// interactive closing	    {		switch (JOptionPane.showConfirmDialog(			WmvcApp.getFrame(),                        "The movie list has changed since you "                        + "last saved it.\n"		        + "Save the current movie list?",		        "Movie List Has Changed",		    JOptionPane.YES_NO_CANCEL_OPTION))		{		    case JOptionPane.NO_OPTION:		    	return true;   // don't save, but done		    case JOptionPane.CANCEL_OPTION:		    case JOptionPane.CLOSED_OPTION:			return false;		    default:		    	break;		// YES		}		if (myModel.getFile() == null)		{		    int retV = 		         fc.showSaveDialog(WmvcApp.getFrame());		    if (retV == JFileChooser.APPROVE_OPTION)		    {			File file = fc.getSelectedFile();			if (!myModel.saveMoviesAs(file))			    return false;		 	else			{			    myModel.closeMovies();			    return true;		 	}		    }		    else		    	return false;		}	    }	    myModel.saveMovies();	    myModel.closeMovies();	}	return true;    }    private void createControls()    {	// This is the Controller for this view. It creates the	// menu & toolbar, and implements all the control code, 	// mostly in anonymous WmvcExecutor classes.	// MenuBar: File	JMenu fileMenu = new JMenu("File");	// File->Open Movie List	WmvcMenuItemCtl fileOpen = new WmvcMenuItemCtl(fileMenu,	    "Open Movie List","images/open-16.gif", 'O',	    null /* no accel */, new WmvcExecutor()	    {		public void execute(ActionEvent event)		{		    if (!closingCurrentMovie(true))		        return;		    int retV = 		          fc.showOpenDialog(WmvcApp.getFrame());		    if (retV == JFileChooser.APPROVE_OPTION)		    {			File file = fc.getSelectedFile();			myModel.openMovies(file);		    }		}	    });	// File->Save Movie List	WmvcMenuItemCtl fileSave = new WmvcMenuItemCtl(fileMenu,	    "Save Movie List","images/save-16.gif", 'S',	    null /* no accel */, new WmvcExecutor()	    {		public void execute(ActionEvent event)		{		    if (myModel.getFile() == null)		    {			JOptionPane.showMessageDialog(			 WmvcApp.getFrame(),			 "No movie file name specified.\n"		         + "Use \"Save MovieList As\" instead.",			"No file name specified",			JOptionPane.ERROR_MESSAGE);		    }		    else			myModel.saveMovies();		}	    });	// File->Save Movie List	WmvcMenuItemCtl fileSaveAs = new WmvcMenuItemCtl(	    fileMenu,	    "Save Movie List As","images/gray.gif",	    'A', null /* no accel */, new WmvcExecutor()	    {		public void execute(ActionEvent event)		{		    int retV = 		          fc.showSaveDialog(WmvcApp.getFrame());		    if (retV == JFileChooser.APPROVE_OPTION)		    {			File file = fc.getSelectedFile();			myModel.saveMoviesAs(file);		    }		}	    });	WmvcApp.addMenu(fileMenu);	// Add to app menu	// MenuBar: Edit	JMenu editMenu = new JMenu("Edit");	// Edit->Edit Current Movie	WmvcMenuItemCtl editEdit = new WmvcMenuItemCtl(editMenu,	    "Edit Current Movie","images/gray.gif", 'E',	    null /* no accel */,  new WmvcExecutor()	    {		public void execute(ActionEvent event)		{		    Movie edited = theMovieEditor.showDialog(		       WmvcApp.getFrame(), 		       myModel.getCurrentMovie());		    myModel.replaceCurrentMovie(edited);		}	    });	// Edit->Add New Movie	WmvcMenuItemCtl editNew = new WmvcMenuItemCtl(editMenu,	    "Add New Movie","images/addmovie-16.gif", 'A',	    null /* no accel */, new WmvcExecutor()	    {		public void execute(ActionEvent event)		{		    Movie blank = new Movie();		    Movie newMovie = theMovieEditor.showDialog(		       WmvcApp.getFrame(), blank);		    myModel.addMovie(newMovie);		}	    });	// Edit->Remove Current Movie	WmvcMenuItemCtl editRemove = new WmvcMenuItemCtl(	    editMenu,	    "Remove Current Movie","images/delx.gif", 'R',	     null /* no accel */, new WmvcExecutor()	    {		public void execute(ActionEvent event)		{		    myModel.deleteCurrentMovie();		}	    });	WmvcApp.addMenu(editMenu);	// Add to app menu	// ToolBar: Open	WmvcTBButtonCtl toolOpen = new WmvcTBButtonCtl(	    "Open","images/open-16.gif",	    "Open an Existing Movie List",	    fileOpen.getWmvcExecutor()); // reuse fileopen exec	// ToolBar: Add	WmvcTBButtonCtl toolAdd = new WmvcTBButtonCtl(	    "Add Movie", "images/addmovie-16.gif",	    "Add a new movie",	    editNew.getWmvcExecutor()); // reuse editNew exec    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -