ファイルをバイナリ形式で表示する (Java+Swing編)

ビューの生成

ディレクトリツリー・ビュー、ファイル一覧表示ビューおよび、ファイルデータ表示ビューの初期化を行います。

ディレクトリツリー・ビューを初期化する

FileTreeView.java


/* ----------------------------------------------------------------------- */
/**
 *  コンストラクタ.
 *
 */
FileTreeView() {

    //! コンピュータ名をディレクトリツリーのルートに登録する.
    DefaultMutableTreeNode rootNode = createRootDirectory();

    //! ディレクトリツリーにドライブ名を登録する.
    addDriveName( rootNode );

    //! ディレクトリツリーのディレクトリが展開されるときのイベント処理を登録する.
    addTreeWillExpandListener( new TreeWillExpandListener() {
        @Override
        public void treeWillCollapse( TreeExpansionEvent e ) throws ExpandVetoException {
        }

        @Override
        public void treeWillExpand( TreeExpansionEvent e) throws ExpandVetoException {
            fileTreeExpand( e );
        }
    });

    //! ディレクトリの選択が変更されるときのイベント処理を登録する.
    addTreeSelectionListener( new TreeSelectionListener(){
        @Override
        public void valueChanged( TreeSelectionEvent e ){
            fileTreeSelectChanged( e );
        }
    });

    //! ルートノードを展開表示する.
    expandRow( 0 );
}
	

コンストラクタでディレクトリツリーの初期化を行います。

最初にルートノードにコンピュータ名を登録します。

次にルートノードの子ノードとしてドライブ名のリストを登録します。

ディレクトリツリーのディレクトリが展開されるときのイベント処理を登録します。

(ディレクトリの展開が閉じられるイベント「treeWillCollapse()」の処理は何も実行しません。)

ディレクトリの選択が変更されるときのイベント処理を登録します。

最後にルートノードを展開表示します。

ファイル一覧表示ビューを初期化する

FileListView.java


/* ----------------------------------------------------------------------- */
/**
 *  コンストラクタ.
 *
 */
FileListView() {

    DefaultTableModel model = new DefaultTableModel();
    setModel( model );

    //! カラム名を登録する.
    model.setColumnIdentifiers( new String[] { "ファイル名", "サイズ", "更新日時" } );

    //! それぞれのカラムにレンダラーを設定する.
    getColumnModel().getColumn(0).setCellRenderer( new FileNameTableCellRenderer() );
    getColumnModel().getColumn(1).setCellRenderer( new FileSizeTableCellRenderer() );
    getColumnModel().getColumn(2).setCellRenderer( new FileDateTableCellRenderer() );

    //! 罫線を非表示にする.
    setShowHorizontalLines( false );
    setShowVerticalLines(   false );

    //! テーブルの項目をダブルクリックしたときのイベント処理を登録する.
    addMouseListener( new MouseAdapter() {
        @Override
        public void mouseClicked( MouseEvent me ) {
            if( me.getButton() == MouseEvent.BUTTON1 && me.getClickCount() == 2 ){
                onDblClick( me );
            }
        }
    });

    //! ファイル一覧にドライブ名を表示する.
    showDriveName( model );

    setVisible( true );
}
	

テーブルモデルを生成して JTable にセットします。

カラム名をテーブルモデルに登録します。

カラム位置カラム名
1ファイル名
2サイズ
3更新日時

それぞれのカラムにレンダラーを設定します。

表示するリストの罫線を非表示にします。

ファイル一覧の項目をダブルクリックしたときのイベント処理を登録します。

ファイル一覧にドライブ名のリストを初期データとして表示します。

最後にファイル一覧ビューを可視状態にします。

ファイルデータ表示ビューを初期化する

FileDataView.java


/* ----------------------------------------------------------------------- */
/**
 *  コンストラクタ.
 *
 * @param   vscroll     垂直スクロールバー.
 * @param   hscroll     水平スクロールバー.
 */
FileDataView( JScrollBar vscroll, JScrollBar hscroll ) {

    //! 背景色をセットする.
    setBackground( Color.WHITE );

    //! スクロールバーのオブジェクトを保存する.
    scrollV = vscroll;
    scrollH = hscroll;

    //! 垂直スクロールバーを初期化する.
    scrollV.setMinimum( 0 );
    scrollV.setMaximum( 0 );
    scrollV.setValue(   0 );

    //! 水平スクロールバーを初期化する.
    scrollH.setMinimum( 0 );
    scrollH.setMaximum( 0 );
    scrollH.setValue(   0 );

    //! スクロールバーのイベントを登録する.
    scrollV.addAdjustmentListener( this );
    scrollH.addAdjustmentListener( this );

    //! ホイールマウスのイベントを登録する.
    addMouseWheelListener( new MouseWheelListener() {
        @Override
        public void mouseWheelMoved( MouseWheelEvent e ) {
            onMouseWheel( e );
        }
    });

    //! ウインドウサイズが変更されるときのイベントを登録する.
    addComponentListener( new ComponentListener() {
        @Override
        public void componentHidden( ComponentEvent e ) {
        }

        @Override
        public void componentMoved( ComponentEvent e ) {
        }

        @Override
        public void componentResized( ComponentEvent e ) {
            onResized( e );
        }

        @Override
        public void componentShown( ComponentEvent e ) {
        }
    });
}
	

バイナリ表示ビューの初期化を行います。

ビューの背景色を「白色」にします。

引数で貰ったスクロールバーのオブジェクトを保存しておきます。

スクロールバーのイベント通知先として「バイナリ表示ビュー」を登録します。

ホイールマウスのイベントを登録します。

ウインドウサイズが変更されるときのイベントを登録します。



商標に関する表示