トップ «前の日記(2007-12-28) 最新 次の日記(2007-12-30)» 編集

jFD開発したりしなかったり日誌

2004|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|
2007年
12月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

2007-12-29 [長年日記]

_ HtmlTablePanel

実家に向かうあずさの中でちょっと手を入れた。

HtmltablePanelでは、設定のXMLファイルの中にHTMLのtableタグを書いてレイアウトを

行うようになっている。

設定のXMLファイルはこんな感じ。

 

<table>

<tr><td colspan="2">lable<td><tr>

<tr><td>button1<td><td>button2<td><tr>

</table>

 

実際のコードは、

 

public class XXXFrame extends JFrame {

private JLabel label = new JLabel();

private Jbutton button1 =new JButton("button1");

private Jbutton button2 =new JButton("button2");

public XXXFrame() {

 HtmlTablePanel panel = new HtmlTablePanel)("/layout.xml");

 panel.addComponent(label, "label");←"label"という場所に、JLabelを置く

 panel.addComponent(button1, "button1");←"button1"という場所に、button1を置く

 panel.addComponent(button2, "button2");←"button2"という場所に、button2を置く

 getContentPane().add(panel);

}

}

 

みたいになるんだが、この配置の部分が無駄だった。

GUIプログラミングでは大概、画面に出すコンポーネントは画面クラスのメンバ変数になる。

だったらtdタグのテキストで直接クラスのメンバ名を書いてやればいちいちコンポーネントごとに

addComponentを呼ばなくてもまとめてレイアウトしてくれるようにすればいい。

だから、新しい方式のコードはこうなる(例外処理なんかは省略してます)。

 

public class XXXFrame extends JFrame {

private JLabel label = new JLabel();

private Jbutton button1 =new JButton("button1");

private Jbutton button2 =new JButton("button2");

public XXXFrame() {

 HtmlTablePanel panel = new HtmlTablePanel)("/layout.xml");

 panel.layoutByMemberName(this);←これだけで全部のコンポーネントが配置される。

 getContentPane().add(panel);

}

}

 

jFD2だとファイラー画面だけで70個くらいのコンポーネントがあって、そのすべてに対して

addComponentを呼んでいるのが、1行で済ますことが出来る。

かなり便利じゃね?

これがあればIDEのGUIエディタも要らないと思うんだが。

海外でも宣伝してみるかな。

本日のリンク元
その他のリンク元
検索