0

今までは 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: 良いグルーヴィーなチュートリアルを知っているなら、私に知らせてください :)

4

1 に答える 1

1

これは、グルーヴィーなswingbuilderの問題というよりも、Swingの問題だと思います。

HTML のようにテーブル ヘッダーを定義する簡単な方法はありません。

Java で Swing を使用してこれを行う方法の例を次に示しますが、これは11 年前のものであり、Java 1.5 以降では機能するとは思えません...

実際、Java 1.5+ でこのコードを実行する方法について、(現在は kaput の) Sun Java フォーラムに古い修正があります。

しかし、これは私が見た覚えのある UI パターンではないので (簡単な HTML でも)、別の方法でデータを表示する方が良い (または、少なくともエンド ユーザーにとってより認識しやすい) のではないでしょうか?

于 2010-12-29T22:25:17.320 に答える