📄 mainview.java
字号:
import java.io.*;import java.util.*;import java.awt.event.*;import java.awt.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.filechooser.*;public class MainView extends WmvcView { private JFileChooser fc; private MovieEditor theMovieEditor; private MovieModel myModel; public MainView(){ myModel=(MovieModel)WmvcApp.getModel(); myModel.addView(this); fc=new JFileChooser(new File(System.getProperty("user.dir"))); createControls(); theMovieEditor=MovieEditor.getInstance(); theMovieEditor.initialize(); } public boolean closingCurrentMovie(boolean ask){ if(myModel.getEditsMade()){ if(ask){ switch(JOptionPane.showConfirmDialog( WmvcApp.getFrame(), "The movie list has changed since you" +"last svae it.\n" +"Save the current movie list?", "Movie List has changed", JOptionPane.YES_NO_CANCEL_OPTION)){ case JOptionPane.NO_OPTION: return true; case JOptionPane.CANCEL_OPTION: case JOptionPane.CLOSED_OPTION: return false; default: break; } 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(){ JMenu fileMenu=new JMenu("File"); WmvcMenuItemCtl fileOpen=new WmvcMenuItemCtl( fileMenu,"Open Movie List", null,'O',null, new WmvcExecutor(){ public void execute(ActionEvent e){ if(!closingCurrentMovie(true)){ return; } int retV=fc.showOpenDialog(WmvcApp.getFrame()); if(retV==JFileChooser.APPROVE_OPTION){ File file=fc.getSelectedFile(); myModel.openMovies(file); } } }); WmvcMenuItemCtl fileSave=new WmvcMenuItemCtl(fileMenu, "Sava Movie List", null,'S',null, new WmvcExecutor(){ public void execute(ActionEvent e){ if(myModel.getFile()==null){ JOptionPane.showMessageDialog( WmvcApp.getFrame(), "No movie file name specified.\n" +"Use \"Save MoveList As\" instead.", "No file name specified", JOptionPane.ERROR_MESSAGE ); }else{ myModel.saveMovies(); } } }); WmvcMenuItemCtl fileSaveAs=new WmvcMenuItemCtl(fileMenu, "Save Movie List As",null,'A',null, new WmvcExecutor(){ public void execute(ActionEvent e){ int retV= fc.showSaveDialog(WmvcApp.getFrame()); if(retV==JFileChooser.APPROVE_OPTION){ File file=fc.getSelectedFile(); myModel.saveMoviesAs(file); } } } ); WmvcApp.addMenu(fileMenu); JMenu editMenu=new JMenu("Edit"); WmvcMenuItemCtl editEdit=new WmvcMenuItemCtl(editMenu, "Edit Current Momie",null,'E',null, new WmvcExecutor(){ public void execute(ActionEvent e){ Movie edited=theMovieEditor.showDialog( WmvcApp.getFrame(), myModel.getCurrentMovie()); myModel.replaceCurrentMovie(edited); } } ); WmvcMenuItemCtl editNew=new WmvcMenuItemCtl( editMenu,"Add New Movie",null,'A',null, new WmvcExecutor(){ public void execute(ActionEvent e){ Movie blank=new Movie(); Movie newMovie=MovieEditor.getInstance().showDialog( WmvcApp.getFrame(),blank ); myModel.addMovie(newMovie); } } ); WmvcMenuItemCtl editRemove=new WmvcMenuItemCtl( editMenu,"Remove CurrentMovie",null,'R',null, new WmvcExecutor(){ public void execute(ActionEvent e){ myModel.deleteCurrentMovie(); } } ); WmvcApp.addMenu(editMenu); WmvcTBButtonCtl toolOpen=new WmvcTBButtonCtl( "Open",null, "Open an Exsiting Movie List", fileOpen.getWmvcExecutor() ); WmvcTBButtonCtl toolAdd=new WmvcTBButtonCtl( "Add",null, "Add a new movie", editNew.getWmvcExecutor() ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -