[Java]108 パッケージ別クラス図作成

[M1 Mac, Big Sur 11.6.5, VSCode 1.67.1]

自製カラーアプリについてパッケージ間の関係性をクラス図で表現しました。

mainクラスを含むbaseパッケージとbtnActionパッケージのクラス図を描いてみました。関係性が一目瞭然です。

@startuml

package base {
    +class ColorSampleJP66 {
        +{static} gui : JFrame
        +{static} tabbedpane : JTabbedPaneEx
        +{static} tab1 : JPanel
        +{static} tab2 : JPanel
        +{static} tab3 : JPanel
        +{static} tab4 : JPanel
        +{static} tab5 : JPanel
        +{static} tab6 : JPanel
        +{static} layout : BorderLayout
        +{static} default_font : Font
        +{static} home : String
        -locale_lang : ResourceBundle

        -ColorSampleJP66() : void
        +{static} main(String[] args) : void
        +{static} setLAF() : void
        +LAF_OS() : String[][]
        +{static} size(String key) : int
        +{static} makeDir() : void

    }
    
    '関連クラス(mainクラスで使用)
    +class PanelMake {
    }
    +class RegistTab {
    }
}

package btnAction {
    +class ShowButtonAction {
    }
    +class AdjustButtonAction {
    }
    +class AlphaButtonAction {
    }
    +class RadioButton1Action {
    }
    +class RadioButton2Action {
    }
    +class RadioButton3Action {
    }
    +class RadioButton4Action {
    }
    +class RegistButtonAction {
    }
    +class TrushButtonAction {
    }
    +class FormatConverter {
    }

}

ColorSampleJP66 -- PanelMake
ColorSampleJP66 -left- RegistTab

left to right direction
PanelMake -- ShowButtonAction
PanelMake -- AdjustButtonAction
PanelMake -- AlphaButtonAction
PanelMake -- RadioButton1Action
PanelMake -- RadioButton2Action
PanelMake -- RadioButton3Action
PanelMake -- RadioButton4Action
RegistTab -- RegistButtonAction
RegistTab -- TrushButtonAction
AdjustButtonAction -- FormatConverter

@enduml

[Java]107 メインクラスのクラス図作成 : レイアウト変更

[M1 Mac, Big Sur 11.6.5, VSCode 1.67.1]

クラス図をより見やすくするために子クラスを右側に縦並びさせました。デフォルトの横並びを左へ90度回転させるので左側にあったクラスが下になります。書き順を変えても同じです。

まあ見やすくなったのでよしとします。

@startuml
package base {
    +class ColorSampleJP66 {
        +{static} gui : JFrame
        +{static} tabbedpane : JTabbedPaneEx
        +{static} tab1 : JPanel
        +{static} tab2 : JPanel
        +{static} tab3 : JPanel
        +{static} tab4 : JPanel
        +{static} tab5 : JPanel
        +{static} tab6 : JPanel
        +{static} layout : BorderLayout
        +{static} default_font : Font
        +{static} home : String
        -locale_lang : ResourceBundle

        -ColorSampleJP66() : void
        +{static} main(String[] args) : void
        +{static} setLAF() : void
        +LAF_OS() : String[][]
        +{static} size(String key) : int
        +{static} makeDir() : void

    }
    +class Tab1 {
        -Tab1(String LAF0) : void
    }
    +class Tab2 {
        -Tab2(String LAF0) : void
    }
    +class Tab3 {
        -Tab3(String LAF0) : void
    }
    +class Tab4 {
        -Tab4(String LAF0) : void
    }
    +class Tab5 {
        -Tab5(String LAF0) : void
    }
    +class Tab6 {
        -Tab6(String LAF0) : void
    }
    +class MyWindowsListener {
        +windowClosing(WindowEvent e) : void
    }

    left to right direction
    ColorSampleJP66 +-- Tab1
    ColorSampleJP66 +-- Tab2
    ColorSampleJP66 +-- Tab3
    ColorSampleJP66 +-- Tab4
    ColorSampleJP66 +-- Tab5
    ColorSampleJP66 +-- Tab6
    ColorSampleJP66 +-- MyWindowsListener

    '関連クラス(mainクラスのフィールド)
    +class JTabbedPaneEx {
    }
    
}

ColorSampleJP66 -ri- JTabbedPaneEx

@enduml