今までは PHP と JavaScript で開発してきました。私は現在 groovy を学んでいますが、残念ながらこの言語に関するチュートリアルはあまりなく、現在読んでいる本 (Groovy Recipes) には、groovy の swingbuilder の使用については何も含まれていません。
作業中のプロジェクトとして、次のスキーマのようなテーブルを作成したいと思います。
Instancename
groupId artifactId DEV TEST PROD
firstgroup firstartifact 1.00 1.05 1.05
secondgroup secondartifact 2.02 2.00 2.00
それが私の現在のコードです:
import groovy.swing.SwingBuilder
import java.awt.BorderLayout
public class Gui {
public void createGui(String instanceTitle, ArrayList<Artifact> columnData){
def bldr = new groovy.swing.SwingBuilder();
def frame = bldr.frame(
title: "Overview",
size: [600,150],
defaultCloseOperation:javax.swing.WindowConstants.EXIT_ON_CLOSE
){
def tab = table(constraints:BorderLayout.CENTER) {
tableModel(list:columnData) {
propertyColumn(header:'GroupId', propertyName:'groupId')
propertyColumn(header:'ArtifactId', propertyName:'artifactId')
propertyColumn(header:'Dev', propertyName:'devVersion')
propertyColumn(header:'Test', propertyName:'testVersion')
propertyColumn(header:'Prod', propertyName:'prodVersion')
}
}
widget(constraints:BorderLayout.NORTH, tab.tableHeader)
}
frame.pack()
frame.show();
}
}
これを実行すると、テーブルがデータでいっぱいになります。私の質問は、「DEV」、「TEST」、および「PROD」を「Instancename」に従属させるにはどうすればよいですか? 他のヘッダーの上にヘッダーを追加する方法がわかりません。html では、次のようになります。
<table>
<tr>
<td colspan="2"></td>
<td colspan="3">Instancename</td>
</tr>
<tr>
<td>groupId</td>
<td>artifactId</td>
<td>DEV</td>
<td>TEST</td>
<td>PROD</td>
</tr>
<tr>
<td>firstgroupid</td>
<td>firstartifactid</td>
<td>firstdevversion</td>
<td>firsttestversion</td>
<td>firstprodversion</td>
</tr>
...
</table>
PS: 良いグルーヴィーなチュートリアルを知っているなら、私に知らせてください :)