view src/main/java/christie/textEditor/mainFrame.java.orig @ 230:fddd6f6e7693

tweak
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Tue, 21 Jan 2020 19:36:20 +0900
parents
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);
        //ウィンドウを閉じたらアプリを終了する。
        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_0,KeyEvent.CTRL_DOWN_MASK));
        //ファイルメニューに開くを追加する
        menuFile.add(menuOpen);

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

        textFrame tF = new textFrame();
        desktop.add(tF);
        tF.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();
            try{
                textFrame tF = new textFrame(selectedFile);
                //JDesktopPaneにテキストウィンドウを追加
                desktop.add(tF);
                tF.setVisible(true);
            }catch(IOException e){
                JOptionPane.showMessageDialog(this, "IOExeption: ファイルを開くのに失敗しました。");
            }
        }
    }

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

}