いまさら触るawt
DESCRIPTION
JJUGイベントにて。TRANSCRIPT
いまさら触るAWT
@kobayan_tokyo
自己紹介
Twitter: @kobayan_tokyoGitHub: kobakeWeb site: http://clock-up.jp/
・ゲーム系開発7年、システム系開発2年、Web系開発1.5年・2013年独立
・非常勤Java講師(?)
・C++ / C# / Java / PHP / Ruby / WIN32API
IDE環境
・Eclipse・IntelliJ IDEA・Netbeans
JavaでGUI・AWT・Swing・SWT・SwingX・JGoodies・JavaFX・Apache Pivot・Qt Jambi
JavaでGUI・AWT・Swing・SWT・SwingX・JGoodies・JavaFX ← これが無難?
・Apache Pivot・Qt Jambi
JavaでGUI・AWT ← これを使ってみる
・Swing・SWT・SwingX・JGoodies・JavaFX・Apache Pivot・Qt Jambi
AWTのイメージ
引用元:http://www.cs.cf.ac.uk/Dave/HCI/HCI_Handout_CALLER/node18.html
AWTの実際 (Windows7)
書いたコード:https://github.com/kobake/AwtDentaku
AWTの実際 (Windows7 クラシック)
書いたコード:https://github.com/kobake/AwtDentaku
AWTの実際 (CentOS)
書いたコード:https://github.com/kobake/AwtDentaku
見た目の感触
悪くない。(ネイティブだしね)
ソースコード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); } …}
構成
Panel panelTop;
Panel panelKeys;
// パネルの貼り付け
this.add(panelTop, BorderLayout.NORTH);this.add(panelKeys, BorderLayout.CENTER);