以前に作成した、スクリプトのJava8対応

https://github.com/kurokouji/jdbcswingquery

XF000から開いたSQL出力のwindowが次の指定では、閉じられなかった。
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);


※2015-08-08 追記
「f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);」を
コメントアウトしたら、閉じることができるようになった。


原因がわかったら、問題点を整理してGithubに上げます。

var obj = new JDBCSwingQuery();

/////////////////////////////////
//        JDBCSwingQuery       //
/////////////////////////////////
function JDBCSwingQuery() {
	var importedPackage = new JavaImporter(java.awt, javax.swing, javax.swing.table, java.sql, java.util);
	with (importedPackage) {

	var persistMgr;
	var rs ;
	var model;
	var strsql;

	strsql = setSqlString();				// ダミーのSQLをセットする

	try {
		persistMgr = new PersistenceManager();
		rs = persistMgr.executeSQL(strsql);
		model = new DataModel(rs);
	} catch (e) {
		showMessage(e);
		return;
	}

	//////////////////////////
	// ダイアログ要素の設定 //
	//////////////////////////

	var f = new JFrame() ;
	var table = new JTable();
	table.setModel(model);
	var scrollpane = new JScrollPane(table);

	// コンポーネントの作成
	var queryField = new JTextField(strsql);
	var queryButton = new JButton("Submit");
	var panel = new JPanel();
	panel.setLayout(new GridLayout(2, 1));
	panel.add(queryField);
	panel.add(queryButton);

	// コンテント・ペインの取得
	var cont = f.getContentPane();

	// コンテント・ペインに追加
	cont.add(panel, BorderLayout.NORTH);
	cont.add(scrollpane, BorderLayout.CENTER);

	// JFrame の作成
	f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	 	f.setTitle("JDBCSwingQuery");
	f.pack();
	    f.setVisible(true);

	////////////////////////
	// イベント、再クエリ //
	////////////////////////
	queryButton.addActionListener(function(){
		strsql = queryField.getText();
		try {
			rs = persistMgr.executeSQL(strsql);
			model = new DataModel(rs);
		} catch (e) {
			showMessage(e);
			return;
		}
		table.setModel(model); 
	   });
}
}

/////////////////////////////////
//      PersistenceManager     //
/////////////////////////////////

function PersistenceManager() {
	var importedPackage = new JavaImporter( java.sql);
	with (importedPackage) {
	var conn;
	var stmt;
	var SQL = "";
	try {
		// データベースへの接続

		    java.lang.Class.forName("org.postgresql.Driver");
		    conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/skeleton", "postgres", "password");

		    stmt = conn.createStatement();

		} catch (e) {
		    showMessage(e);
	    }

	    this.executeSQL = function(str){
		try {
			if (stmt.execute(str)) {
				// SQL ステートメントの発行
				SQL = str;
				return stmt.getResultSet();
			} else {
				return stmt.executeQuery(SQL);
			}
		} catch (e) {
			showMessage(e);
			return stmt.executeQuery(SQL);
		}
	}

	    this.dbClose = function() {
		  //データベースを切断する
		  conn.Close();
		  conn = null;
	    }
}
}

/////////////////////////////////
//          DataModel          //
/////////////////////////////////

function DataModel(rset) {
	var importedPackage = new JavaImporter(javax.swing.table, java.util);
	with (importedPackage) {
	var metaData;
	var columnNames;
	var rows;
	var numberOfColumns;
	var numberOfRows;

	metaData = rset.getMetaData();	// ResultSetのメタデータの取得
	numberOfColumns =  metaData.getColumnCount();	// 列数を取得

	columnNames = new Vector();	// 列名を保持するベクトル
	for(column = 0; column < numberOfColumns; column++) {
		 columnNames.addElement(metaData.getColumnLabel(column + 1));	// 列名を取得
//			 showMessage(metaData.getColumnLabel(column + 1));
	}
	rows = new Vector();	// ResultSet全体のデータを保持するベクトル
	while (rset.next()) {
		newRow = new Vector();	// ResultSetの一行分のデータを保持するベクトル
		for ( var i = 1; i <= numberOfColumns; i++) {
			newRow.addElement(rset.getObject(i));	// 各データを取得し追加
		}
		rows.addElement(newRow);	// 各行を追加
	}
	numberOfRows = rows.size();

	showMessage(numberOfRows + "レコード取得しました。");

	//TableModelインターフェースとは
	    //http://www.javadrive.jp/tutorial/jtable/index7.html
	//DefaultTableModel(Vector data, Vector columnNames)
	//DefaultTableModel を構築し、data と columnNames を setDataVector メソッドに渡すことにより、テーブルを初期化します
	model = new DefaultTableModel(rows, columnNames);
	    return model;
}}


/////////////////////////////////
//         setSqlString        //
/////////////////////////////////
function setSqlString() {
	var strSQL = "\
	select * from zt051 ;"
	 return strSQL;
}