view src/main/java/christie/textEditor/mainFrame.java @ 224:0c74d9168aff

fix Editor & trans
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Tue, 24 Dec 2019 19:33:50 +0900
parents 1c37472fc00d
children
line wrap: on
line source

package christie.textEditor;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.KeyEvent;

import java.io.File;
import java.io.IOException;

import javax.swing.JDesktopPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;;

public class MainFrame extends JFrame{
    private JDesktopPane desktop;

    private JFileChooser fileChooser;

    private static MainFrame instance;

    private MainFrame(){
        //タイトルを設定
        super("テキストエディタ") ;
        setSize(1024,768);
        //ウィンドウを閉じたらアプリを終了する。
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //メインウィンドウにコンポーネントを配置する領域とのこと。
        Container container = this.getContentPane();

        //メニューバーを初期化
        JMenuBar menuBar = new JMenuBar();
        //コンテナにメニューバーを配置する(ウインドウ上部に)
        container.add(menuBar, BorderLayout.NORTH);
        JMenu menuFile = new JMenu("ファイル");
        menuBar.add(menuFile);
        //開くメニューの作成
        JMenuItem menuOpen = new JMenuItem(new MenuActionOpen());
        //CTRT + oショートカットキーの設定
        menuOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,KeyEvent.CTRL_DOWN_MASK));
        //ファイルメニューに開くを追加する
        menuFile.add(menuOpen);

        desktop = new JDesktopPane();
        container.add(desktop);

        TextFrame textFrame = new TextFrame();

        desktop.add(textFrame);
        textFrame.setVisible(true);

        //ファイル選択ダイアグの初期化
        fileChooser = new JFileChooser();
        //テキストファイル(*.txt)のみ表示するフィルターを追加
        //fileChooser.addChoosableFileFilter(new TextFileFilter());
    }

    void openFile(){
        //ファイルを開くダイアログを表示する
        int result = fileChooser.showOpenDialog(this);
        //ファイル選択時の処理
        if (JFileChooser.APPROVE_OPTION == result) {
            File selectedFile = fileChooser.getSelectedFile();
            System.out.println(selectedFile);
            try{
                TextFrame textFrame = new TextFrame(selectedFile);
                //JDesktopPaneにテキストウィンドウを追加
                this.desktop.add(textFrame);
                textFrame.setVisible(true);
            }catch(IOException e){
                JOptionPane.showMessageDialog(this, "IOExeption: ファイルを開くのに失敗しました。");
            }
        }
    }

    public static MainFrame getInstance(){
        if (instance == null){
            instance = new MainFrame();
        }
        return instance;
    }

}