NetBenasプラグイン開発ちょっと攻略−NetBeansIDE5.5対応企画 TableViewer

 参考書籍:Eclipseプラグイン開発徹底攻略―Eclipse 3.2対応

 テーブルビューアーは結局JTable+DefaultTableModelで実現することにします。ちなみに今回からNetBeansIDE6.0M7になっています。

プロジェクトとウィンドウコンポーネントの作成

  1. New Project > NetBeans Plug-in Modules > Module Project
  2. New > Window Component
  3. TopComponentにJScrollPane、その上にJTableを配置します。JTableのプロパティからmodelを選択し、ヘッダとカラム定義を行います。

TableViewTopComponent.java

    private TableViewTopComponent() {
        //
        // 略
        //
        setupTable();
    }
    
    private void setupTable() {
        jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        
        for(int index = 0; index < 10; index++) {
            Alarm alarm = new Alarm(index, "1.3.6.1.2.1.2.2.1."+index, 1041);
            Object[] row = new Object [4];
            
            row[0] = alarm.getLevel();
            row[1] = alarm.getNodeFullName();
            row[2] = alarm.getValue();
            row[3] = alarm.getDate();
            model.addRow(row);
        }
    }

Alarm.java

public class Alarm {
    
    private int level = 0;
    private String nodeFullName = null;
    private int value = 0;
    private Date date = new Date();
    
    /** Creates a new instance of Alarm */
    public Alarm() {
    }
    
    public Alarm(int level, String nodeFullName, int value) {
        this.level = level;
        this.nodeFullName = nodeFullName;
        this.value = value;
    }
    
    public void setDate(Date date) {
        this.date = date;
    }

    public Date getDate() {
        return date;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }

    public void setNodeFullName(String nodeFullName) {
        this.nodeFullName = nodeFullName;
    }

    public String getNodeFullName() {
        return nodeFullName;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public int getLevel() {
        return level;
    }
    
}

実行結果