きよツール:回答表示画面のレイアウトがいまいち見苦しい件で解決策
玄関の鍵を開けている時に唐突に解決方法を思いついた。メモル
今の回答表示画面は迷走中だが:
問題画面のレイアウトがこう:
だから、これに近ければ近いレイアウトであればあるほど違和感がない。
つまりこう切り分けて:
こうなればいいはず:
Javaでどう組むか
そもそもJFrameとGlassPaneでの実装を全く別のものと考えていたのが敗北の元で、たぶんレイアウト部分を1つのクラスに切って、配置についての責任はそいつにお任せすればいい。
上の赤枠部分を1つのクラスに切ってしまうわけだ。
現状、
- MainWindow extends JFrame
- AnswerDisplay extends JPanel
2つのクラスを完全に別個に作っているけど、これをこうする:
- BaseLayoutPanel extends JPanel
- MainWindow extends JFrame
- win.getContentPane().add(blp = new BaseLayoutPanel())
- AnswerDisplay extends BaseLayoutPanel
上のコード例だとblpがフィールドみたいな扱いになってるけど、別にQuizDisplay的なPanelに切り出してMainWindowにaddしても良さげだな。これならさらに別の表示モードを作ってもBaseLayoutPanelを継承するか包含すれば基本レイアウトは勝手に維持されるし、いまGlassPaneとして解答表示見せてるけど、別にCardLayout使ったっていい。
うん。たぶんウィンドウからPanelを分離できるんでやり方としてはそっちのほうが冴えてるはず。
それにしても開発環境がVenue 8 Proで解像度が1280 x 800とシオシオなのがつらいな。きよツールプレーヤーとしては優秀だが、またクラス数とか膨らんできて、開発用にHD+以上のマシンとかかなりほしい
Venue 11 ProとかFullHDらしいがいいのかな?