いまさら触るawt

13
いまさら触るAWT @kobayan_tokyo

Upload: keiichi-kobayashi

Post on 20-Dec-2014

1.292 views

Category:

Technology


1 download

DESCRIPTION

JJUGイベントにて。

TRANSCRIPT

Page 1: いまさら触るAwt

いまさら触るAWT

@kobayan_tokyo

Page 2: いまさら触るAwt

自己紹介

Twitter: @kobayan_tokyoGitHub: kobakeWeb site: http://clock-up.jp/

・ゲーム系開発7年、システム系開発2年、Web系開発1.5年・2013年独立

・非常勤Java講師(?)

・C++ / C# / Java / PHP / Ruby / WIN32API

Page 3: いまさら触るAwt

IDE環境

・Eclipse・IntelliJ IDEA・Netbeans

Page 4: いまさら触るAwt

JavaでGUI・AWT・Swing・SWT・SwingX・JGoodies・JavaFX・Apache Pivot・Qt Jambi

Page 5: いまさら触るAwt

JavaでGUI・AWT・Swing・SWT・SwingX・JGoodies・JavaFX ← これが無難?

・Apache Pivot・Qt Jambi

Page 6: いまさら触るAwt

JavaでGUI・AWT ← これを使ってみる

・Swing・SWT・SwingX・JGoodies・JavaFX・Apache Pivot・Qt Jambi

Page 7: いまさら触るAwt

AWTのイメージ

引用元:http://www.cs.cf.ac.uk/Dave/HCI/HCI_Handout_CALLER/node18.html

Page 8: いまさら触るAwt

AWTの実際 (Windows7)

書いたコード:https://github.com/kobake/AwtDentaku

Page 9: いまさら触るAwt

AWTの実際 (Windows7 クラシック)

書いたコード:https://github.com/kobake/AwtDentaku

Page 10: いまさら触るAwt

AWTの実際 (CentOS)

書いたコード:https://github.com/kobake/AwtDentaku

Page 11: いまさら触るAwt

見た目の感触

悪くない。(ネイティブだしね)

Page 12: いまさら触るAwt

ソースコードpublic class Main extends Frame implements WindowListener, ActionListener{ … public Main(){ super("電卓"); this.addWindowListener(this);

// 上部パネル(テキスト配置部分)

Panel panelTop = new Panel(); panelTop.setLayout(new BorderLayout()); { // ラベル追加

Label label = new Label("0"); label.setAlignment(Label.RIGHT); label.setBackground(Color.LIGHT_GRAY); panelTop.add(label, BorderLayout.CENTER); Font f = new Font(Font.MONOSPACED, 0, 20); label.setFont(f); }

// 下部パネル(ボタン配置部分)

Font f = new Font(Font.MONOSPACED, 0, 20); Panel panelKeys = new Panel(); panelKeys.setLayout(new GridLayout(5, 4)); // 行数、列数

{ String[] names = { "AC","C","BS","±", "7","8", "9", "+", "4","5", "6", "-", "1","2", "3", "*", "0",".", "=", "/", }; for(int i = 0; i < 20; i++){ Button button = new Button(names[i]); button.addActionListener(this); button.setFont(f); panelKeys.add(button); } }

// パネルの貼り付け

this.add(panelTop, BorderLayout.NORTH); this.add(panelKeys, BorderLayout.CENTER);

// ウィンドウ表示

setSize(300, 300); setVisible(true); } …}

Page 13: いまさら触るAwt

構成

Panel panelTop;

Panel panelKeys;

// パネルの貼り付け

this.add(panelTop, BorderLayout.NORTH);this.add(panelKeys, BorderLayout.CENTER);