約 2,879,552 件
https://w.atwiki.jp/shabe/pages/35.html
XML JavaでXML扱うためのメモ。 XMLプロセッサ実装の切替え 以下のシステムプロパティに対して使用したい実装のFactoryクラスを指定する。 javax.xml.parsers.SAXParserFactory javax.xml.parsers.DocumentBuilderFactory javax.xml.transform.TransformerFactory 例 WeblogicのDOMパーサを指定する場合 System.setProperty( "javax.xml.parsers.DocumentBuilderFactory", "weblogic.xml.jaxp.RegistryDocumentBuilderFactory"); XMLSchemaによるXML検証 DOMの場合です。 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(true); factory.setNamespaceAware(true); TestErrorHandler handler = new TestErrorHandler(); DocumentBuilder builder = factory.newDocumentBuilder(); builder.setErrorHandler(handler); builder.parse("sample.xml"); TestErrorHandlerは各メソッドで標準出力を出すなりしましょう。 一番最初namespaceなしのXMLで検証ができなくて悩んでいましたが、その理由は以下のフラグをfalseにしていたせいでした。 factory.setNamespaceAware(true); 自分が作成したXMLはnamespace使ってないからと思ってましたが、よく考えたらXMLスキーマの指定の部分とかで使ってるんですよね。 こう書いてみるとDTDのときと大して変わらないね。namespaceの扱いくらいか。 SAXの場合はSAXParserFactoryの設定を以下の通りにするとよいらしい。 spfactory.setFeature( "http //xml.org/sax/features/namespaces", true); spfactory.setFeature( "http //xml.org/sax/features/validation", true); spfactory.setFeature( "http //apache.org/xml/features/validation/schema", true);
https://w.atwiki.jp/aosora/pages/14.html
GCの状況を出力する 簡易 -verbose gc 詳細 -Xloggc filename HPjtune http //docs.hp.com/ja/5324/JavaHPjtune-1_2_1-Release-Notes-jp.htm GCの状況をグラフ化してくれる。 GCは詳細でなければ読みとれない。 ダウンロード、展開後、 java -jar HPjtune.jar で起動。 強制GC発生 System.gc();
https://w.atwiki.jp/ce00582/pages/1319.html
import javax.media.j3d.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.Box; import javax.vecmath.*; import java.awt.*; import javax.swing.*; public class ex73 { public static void main(String[] args) { ex73 test = new ex73(); } public ex73() { JFrame frame = new JFrame(); frame.setSize(500,500); frame.setTitle("ex73"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(g_config); canvas.setBounds(0,0,250,250); cp.add(canvas); SimpleUniverse universe = new SimpleUniverse(canvas); frame.setVisible(true); ViewingPlatform camera = universe.getViewingPlatform(); camera.setNominalViewingTransform(); Color3f light_color = new Color3f(1.0f,1.0f,1.0f); Vector3f light_direction = new Vector3f(0.2f,-0.2f,-0.6f); DirectionalLight light = new DirectionalLight(light_color,light_direction); BoundingSphere bounds = new BoundingSphere(); light.setInfluencingBounds(bounds); BranchGroup group2 = new BranchGroup(); group2.addChild(light); universe.addBranchGraph(group2); Appearance appearance = new Appearance(); Material material = new Material(); material.setDiffuseColor(0.9f,0.75f,0.75f); appearance.setMaterial(material); Box box = new Box(0.3f,0.3f,0.3f,appearance); BranchGroup group1 = new BranchGroup(); TransformGroup transform_group = new TransformGroup(); transform_group.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); transform_group.addChild(box); group1.addChild(transform_group); universe.addBranchGraph(group1); Transform3D transform1 = new Transform3D(); transform1.setScale(2.0f); transform_group.setTransform(transform1); } }
https://w.atwiki.jp/ce00582/pages/3756.html
import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.io.IOException; import java.io.*; import java.awt.image.*; class game0630 extends Frame{ PixelGrabber pg; Color col; Image img; int w=500; int h=500; double size; int red,green,blue; int pix[]=new int[w*h]; int memor[][]=new int[h][w]; int memog[][]=new int[h][w]; int memob[][]=new int[h][w]; int girlr[][]=new int[h][w]; int girlg[][]=new int[h][w]; int girlb[][]=new int[h][w]; int rgb[][]=new int[h][w]; int mx,nx,m,n; int m1,n1,m2,n2; int sx,sy; int j; String s1,s2,s3,s4; game0630(){ s1="pic6.jpg"; catchimg(s1); for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ girlr[mx][nx]=memor[mx][nx]; girlg[mx][nx]=memog[mx][nx]; girlb[mx][nx]=memob[mx][nx]; } } s2="one.jpg"; catchimg(s2); for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ j=0; if(memor[mx][nx] 240)j=j+1; if(memog[mx][nx] 240)j=j+1; if(memob[mx][nx] 240)j=j+1; if(j==3)rgb[mx][nx]=100; } } size=1.18; sx=111; sy=156; } public static void main(String[] args) { game0630 f = new game0630(); f.setSize(500,500); f.setBackground(Color.blue) ; f.setVisible(true); f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}}); } public void paint( Graphics g ) { Graphics2D g2 = (Graphics2D)g; BufferedImage readImage = null; if (readImage == null){ readImage = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_BGR); } Graphics2D off = readImage.createGraphics(); off.setColor(Color.red); off.fillRect(0,0,500,500); mx=1; nx=1; for (mx=0;mx 500;mx++){ for (nx=0;nx 500;nx++){ off.setColor(new Color(girlr[mx][nx],girlg[mx][nx],girlb[mx][nx])); off.fillRect(nx,mx,1,1); } } for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ m=sy+(int)(mx/size); n=sx+(int)(nx/size); if(m 0)m=0; if(m 499)m=499; if(n 0)n=499; if(n 499)n=499; off.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx])); if (rgb[mx][nx] 50)off.fillRect(n,m,1,1); } } off.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); BasicStroke wideStroke = new BasicStroke(2.0f); off.setStroke(wideStroke); if (readImage != null){g2.drawImage(readImage,0,0, this);} try { boolean result = ImageIO.[[write]](readImage, "jpg", new File("sam.jpg")); } catch (Exception e) { e.printStackTrace(); } } void catchimg(String s){ img = createImage(w,h); img = Toolkit.getDefaultToolkit().getImage(s); pg = new PixelGrabber(img,0,0,w,h,pix,0,w); try{pg.grabPixels();}catch(InterruptedException ie){} m=0; n=0; for(int i=0;i w*h;i++){ int p = pix[i]; col=new Color(pix[i]); red=col.getRed(); green=col.getGreen(); blue=col.getBlue(); memor[m][n]=red; memog[m][n]=green; memob[m][n]=blue; n=n+1; if (n==w)m=m+1; if (n==w)n=0; } } }
https://w.atwiki.jp/non_ikeuchi/pages/48.html
■JAVA - JAVAメモ
https://w.atwiki.jp/ce00582/pages/1313.html
import javax.media.j3d.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.Box; import javax.vecmath.*; import java.awt.*; import javax.swing.*; public class ex13 { public static void main(String[] args) { ex13 test = new ex13(); } public ex13() { JFrame frame = new JFrame(); frame.setSize(500,500); frame.setTitle("ex13"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(g_config); canvas.setBounds(0,0,250,250); cp.add(canvas); SimpleUniverse universe = new SimpleUniverse(canvas); frame.setVisible(true); ViewingPlatform camera = universe.getViewingPlatform(); camera.setNominalViewingTransform(); Color3f light_color = new Color3f(1.0f,1.0f,1.0f); Vector3f light_direction = new Vector3f(0.2f,-0.2f,-0.6f); DirectionalLight light = new DirectionalLight(light_color,light_direction); BoundingSphere bounds = new BoundingSphere(); light.setInfluencingBounds(bounds); BranchGroup group2 = new BranchGroup(); group2.addChild(light); universe.addBranchGraph(group2); Appearance appearance = new Appearance(); Material material = new Material(); material.setDiffuseColor(0.9f,0.75f,0.75f); appearance.setMaterial(material); Box box = new Box(0.3f,0.3f,0.3f,appearance); //BranchGroupを生成 BranchGroup group1 = new BranchGroup(); //TransformGroupを生成 TransformGroup transform_group = new TransformGroup(); //座標変換の上書きを許可 transform_group.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); //TransformGroupにBoxを登録 transform_group.addChild(box); //BranchGroupにTransformGroupを登録 group1.addChild(transform_group); //最後に、SimpleUniverseにBranchGroupを登録 universe.addBranchGraph(group1); //============================================================================ //平行移動します。 //============================================================================ //平行移動のためのベクトル生成。今回は右へ0.4動かす。 Vector3f vector1 = new Vector3f(0.4f,0.0f,0.0f); //Transform3Dを生成 Transform3D transform1 = new Transform3D(); //Transform3Dに、平行移動としてvectorを登録。 transform1.setTranslation(vector1); //TransformGroupにTransform3Dを登録。 transform_group.setTransform(transform1); } }
https://w.atwiki.jp/matlab/pages/17.html
ロードマップ APIAPIと層 JavaEEアプリケーションのパッケージングWebアプリケーション EJBアプリケーション エンタープライズアプリケーション 参考 <link_pdfプラグインはご利用いただけなくなりました。> 2006年5月、JavaEE5の正式仕様が公開される。 今回名前がガラッとかわったけど、これまでのバージョン、例えばJ2EE 1.4では、 ①Java2の2はいつまで2のままなの? ②1.4の小数点以下がメジャーバージョンを指すのは如何なものか という理由からこの機会にJavaEE5にしようってことのよう。 ロードマップ 年 JavaSE JavaEE 1995 Java誕生 1996 JDK1.0 1997 JDK1.1 1998 JDK1.2 1999 J2EE1.2 2000 JDK1.3 2001 J2EE1.3 2002 JDK1.4 2003 J2EE1.4 2004 JDK5.0 2005 2006 JDK6.0 JavaEE5 2007 2008 JDK7.0 JDK6の年にJavaEE5が出た。1つずれてしまっている。 今日(2008/11/9)時点では、JavaEE6は2009年春予定、JDK7は2009年夏予定。 どこかでJavaEEのバージョンが飛ばされそうな気がする。 そういえば、JDK7をググるとクロージャがたくさんヒットする。 カウンタのサンプルしか見たことがないので、支持される意味がよくわからない。 API 主な機能 機能 J2EE1.3 J2EE1.4 JavaEE5 メモ ServletAPI 2.3 2.4 2.5 (JSR154) マイナーVerUp JSP (JavaServer Pages) 1.2 2.0 2.1 (JSR245) マイナーVerUp。式がUnified ELとなりJSFと統合 JSF (JavaServer Faces) - - 1.2 (JSR252) 式がUnified ELとなりJSPと統合され、仲間入り JSTL (JavaServer Pages Standard Tag Library) - - 1.2 (JSR52) マイナーVerUpし、仲間入り JTA (Java Transaction API) 1.0 1.0 1.0 (JSR907) EJB (Enterprise JavaBeans) 2.0 2.1 3.0 (JSR220) 根本から見直し JPA (Java Persistence API) - - 1.0 (JSR220) POJOベースO/Rマッピング JMS (Java Message Service) 1.0 1.1 1.1 XML/Webサービス関連機能 機能 J2EE1.3 J2EE1.4 JavaEE5 メモ Web Services - 1.1 1.1 (JSR109) Web Services Metadata for the Java Platform - - 2.0 (JSR181) JAXP (Java API for XML Processing) 1.1 1.2 1.2 JAX-RPC (Java APIs for XML based RPC) - 1.0 1.1 (JSR101) JAX-WSを使え JAX-WS (Java API for XML-Based Web Services) - - 2.0 (JSR224) JAX-RPCのVerUpで名前が変わった(下位互換なし) SAAJ (SOAP with Attachements API for Java - 1.1 1.1 (JSR67) JAXB (Java Architecture for XML Binding) - - 2.0 (JSR222) 重要そう StAX (Streaming API for XML) - - 1.0 (JSR173) JAXBに付随して仲間入り その他 機能 J2EE1.3 J2EE1.4 JavaEE5 メモ JCA (J2EE Connector Architecture) 1.0 1.5 1.5 (JCR112) JavaMail 1.2 1.3 1.3 (JSR919) JAF (JavaBeans Activation Framework) 1.0 1.0 1.1 (JCR925) JAXBはもしかしたら面白いのでは?JavaScript(Ajaxとの関連など) JSFはAjaxの動向次第かと。AjaxがExt系に走るのであれば、JavaEEはJax-WSに走るべき。 JSF+Ajaxは、仕様が乱立するので、どこかでJBoss SeemがJavaEE入りするのでは? Ext系も乱立している。SWT(今もある?)の仕様に合わせてコンポーネントを作るべきじゃないの? Ext系:クライアントコンポーネントモデル JSF系:サーバコンポーネントモデル APIと層 JavaEEアプリケーションのパッケージング Webアプリケーション WARについて書く。 EJBアプリケーション EJB-JARについて書く。 エンタープライズアプリケーション EARについて書く。 参考 UFJIS株式会社 斉藤賢哉、マスタリングJavaEE5、翔泳社、2007年 @IT http //www.atmarkit.co.jp/fjava/rensai3/jaee5mgrtn01/jaee5mgrtn01_1.html EJB2.x EJB3.0 http //otn.oracle.co.jp/forum/thread.jspa?messageID=35011604
https://w.atwiki.jp/naobe/pages/73.html
言語に戻る はじめに Netscape社が制定。IEのJScriptとの互換性に問題があり、ECMAの標準規格ECMA-262(JavaScript1.1がベース)が制定され、この規格がJavaScriptの標準規格となった。 2009年時点では、JavaScript1.5~1.7。JavaScript2.0が現在検証中。 文法 コメント //コメント /* コメント */ 演算子 typeof演算子 オペランドに変数を用い、変数の型を表す文字を返す。"string","number","boolean","object","function","undefined"のどれかを返す。 等値演算子(==)と同値演算子(===) ==は型変換を行って、同じ値か確認する。===は型も含めて同じであるか判定する。 【例】 var a = "1"; var b = 1; if( a == b) { document.write("等値 br "); } else { document.write("等値でない br "); } document.write(" br "); if( a === b) { document.write("同値 br "); } else { document.write("同値でない br "); } document.write(" br "); 正規表現 JavaScript1.2から正規表現に対応。 修飾子 g マッチしたものを全て出力。 i 大文字と小文字を区別しない。 例 script !-- var a = "That pen's price is 100$. this pen's price is 200$"; var regx = /[0-9]+/g; var b = a.match(regx); document.write("検索対象文字列" + a + " br "); document.write("正規表現" + regx + " br "); document.write("マッチした文字:" + b + " br "); //-- /script 条件分岐 if 繰り返し処理 while() {} while(条件) { ステートメント } 条件が真の間、ステートメントを実行する。 do { ステートメント } while(条件); 条件が真の間、ステートメントを実行する。最初のステートメントは無条件で実行する。 for in for(プロパティ in オブジェクト) { } オブジェクトのプロパティ名全てに対して処理する。 【例1】 for(var property in navigator) { document.write(navigator[property]); document.write(" br "); } 関数 機能をモジュール化して、共通化する。資源の節約、バグの低減に有効。 書式 function 関数名(引数) { 処理 [return 式] } 関数リテラル 関数を変数(オブジェクト)に代入して使う。 【例】 var func = function(x,y) { return x * y; } func(10, 20); 変数 関数の外部で定義した変数は関数内で使える(グローバル。C言語と同じ)。 【例】 var aaa = "aaa"; function func(x,y) { return aaa; } window.self 自身のwindowオブジェクト window.opener マルチウィンドウの親 windo.parent フレーム分割の1つ親 with文 共通するオブジェクトの記述を省略するために使う。 書式 with(オブジェクト) { } 例 with(document) { write("aaa"); write("bbb"); } 配列 引数は文字列に変換され連想配列として作成される。 初期化 a = []; 代入 a[0] = 1; a[1] = 2; 削除 delete a[0] a[0]がundefinedになり、a[1]は残る。 先頭の抽出 b = a.shift() aの先頭は削除。 最後の抽出 b = a.pop() aの最後は削除。 指定位置の抽出 b = a.slice(start, [end]) endがなければ最後まで。aは変化しない。bは配列になる。 オブジェクト コンストラクタ関数を作成し、newして使う。メソッドは、クラス固有なのでprototypeプロパティに設定する。 【例】 //長方形 function Rectangle(x, y){ this.x = x; this.y = y; } Rectangle.prototype.area = function(){ return this.x * this.y; } var rect = new Rectangle(10, 20); document.write("x:" + rect.x + " br "); document.write("y:" + rect.y + " br "); document.write("面積:" + rect.area() + " br "); クラスプロパティ コンストラクタ関数のプロパティ。定数を表すために使う。名前空間としてクラスを使い名前衝突を防ぐ。 【例】 Number.MAX_VALUE クラスメソッド コンストラクタ関数の関数。汎用的な関数を表すために使う。名前空間としてクラスを使い名前衝突を防ぐ。 【例】 Date.parse() クラスの継承 プロトタイププロパティを利用して、継承したクラスを作成する。 【例】 // クラスの継承 function PointedRectangle(w, h, x, y) { Rectangle.call(this, w, h); this.x = x; this.y = y; } // メソッドを継承させる PointedRectangle.prototype = new Rectangle(); // プロトタイププロパティを削除 delete PointedRectangle.prototype.width; delete PointedRectangle.prototype.height; // コンストラクタを元に戻す PointedRectangle.prototype.constructor = PointedRectangle; var prect = new PointedRectangle(20, 40, 200, 400); 連想配列 プロパティのアクセス方法には以下の2とおりの方法がある。 obj.property = 値; obj["property"] = 値; 2番目の方法を使うとプロパティ名を変数として与えることができるので、連想配列として使える。 WEBアプリケーション Java Scrriptの記述 script タグの中に本体を記述。 script は、何回でも、どこにでも記述可能。ただし呼び出しの前に本体を記述しなければならない。 header タグの中に記述する場合が多い。 JavaScriptに対応していないブラウザに対処するために以下の書式を使う。 script !-- ・・・ //-- /script イベントハンドラ onclick リンク、ボタンの属性。JavaScriptの関数を指定する。falseを返すと、デフォルト処理をキャンセルする(フォームのときは、送信しない。)。 onload body タグに指定する。ドキュメントや画像などの外部コンテンツが完全に読み込まれたときにこのイベントハンドラが呼び出される。 右クリック禁止 body oncontextmenu="return false"" 外部JavaScriptファイル参照 script type="text/javasctipt" src="XXX.js" /script 組み込みメソッド setTimeout(実行する関数, 遅れ時間(ms)) 【例】 ar timer = false; function foo(){ if(timer == false){ setTimeout(function() { timer = true; foo(); timer=false; }, 2000); return; } alert("hello!"); } foo(); 【例12】 var isTrx = 0; var delayTime = 5000; //2重押下抑止 function check() { if (isTrx == 1) { return false; } isTrx = 1; setTimeout('isTrx = 0;', delayTime); return true; } テクニック [Enter]キーでフォームの内容が送信されるのを防ぐ記述 form action="***" method="***" onsubmit="return false;" オブジェクトモデル window +--document | +-- anchors[] | +-- applets[] | +-- Area | +-- forms[] | | +-- elements[] 要素は、Button,CheckBox,・・・ | | +-- Button | | +-- CheckBox | | +-- FileUpload | | +-- Password | | +-- Hidden | | +-- Radio | | +-- Reset | | +-- Select | | | +-- options[] | | | | | +-- Submit | | +-- Text | | +-- Textarea | +-- images[] | +-- links[] +-- history +-- location +-- frames[] +-- navigator +-- screen windowは、ブラウザウィンドウまたはフレームを表す。 フォーム フォーム全体:forms フォームの各要素:elements 添え字によるアクセス document.forms[1].elements[2] ・・ 2番目のformの3番目の要素(button,password,radiobox,textareaなど ) 名前によるアクセス html form name="f1" /form form name="f2" /form /html 上記例では、document.f2 イベント イベント 発生タイミング イベントハンドラ 対象オブジェクト blur ユーザのフォーカスが離れたとき onBlur テキストフィールド focus フォーカスされたとき onFocus テキストフィールド click クリックしたとき onClick ボタン、ラジオボタン、チェックボックス、サブミットボタン、リンク、リセットボタン change 値が変更されたとき onChange テキストフィールド load WebページがWebブラウザにロードされたとき onLoad bodyタグ unload 別のページに移動したとき onUnLoad bodyタグ 【例 onLoad】 body onLoad="alert('ロードしました')" 【例 onUnLoad】 body onUnLoad="alert('移動しました')" 動作しない!! 新たにウィンドウを開く window.open(URL, ターゲット, フィーチャ); URL ロードするサイトのURL ターゲット フィーチャ 何も設定しなければ、起動もとのウィンドウと同じ。一つでも設定すれば、設定した項目のみ有効。 項目 説明 height=X ウィンドウの高さ width=X ウィンドウの幅 left=X ウインドウの画面左からの位置 top=X ウインドウの画面トップからの位置 location URL入力用のバーを表示 menubar メニューバーを表示 resizable ウィンドウのサイズを変更可能にする status ウィンドウ下のステータスバーを表示 scrollbars スクロールバーを表示 セキュリティ JavaScriptでできないこと クライアントのファイルに対して読み書きができない。 ネットワーク機能自体をサポートしない(生のTCP/IPを使えない) 別ブラウザを開くのは、ボタンクリックなどのユーザ操作に対してのみ。(無制限なポップアップウィンドウ表示をなくすため) クローズできるのは、自分が開いたウィンドウのみ 小さなウィンドウ(100ピクセル以下)を開くことはできない。 スクリプトをロードしたサーバと異なるサーバからロードしたドキュメントを操作することはできない。(同一出身ポリシー) 作成例 html head meta http-equiv="Content-Type" content="text/html; charset=UTF-8" meta http-equiv="Content-Style-Type" content="text/css" meta http-equiv="Content-Script-Type" content="text/javascript" title JavaScriptテスト /title style type="text/css" !-- h1 {font-size 14pt}; h2 {font-size 12pt} -- /style /head body oncontextmenu="return false" onLoad="alert('ロードしました')" onunload="alert('ページを移動しました')" h1 単純な文字出力 /h1 script type="text/javascript" !-- document.write("Hello [[Java]] Script."); //-- /script h1 外部ファイル /h1 script type="text/javascript" src="aaa.js" /script h1 正規表現 /h1 h2 マッチした文字を返す /h2 script !-- var a = "That pen's price is 100$. this pen's price is 200$"; var regx = /[0-9]+/g; var b = a.match(regx); document.write("検索対象文字列" + a + " br "); document.write("正規表現" + regx + " br "); document.write("マッチした文字:" + b + " br "); //-- /script h1 繰り返し処理 /h1 h2 for in /h2 script type="text/javascript" !-- for(i in navigator) { document.write(navigator[i]); document.write(" br "); } //-- /script h1 関数の使用 /h1 script type="text/javascript" !-- function func1(a) { return a*2; } document.write("3*2=" + func1(3) + " br " ); //-- /script h1 with文 /h1 script type="text/javascript" !-- with(document) { write("aaa" + " br "); write("bbb" + " br "); } //-- /script h1 マウス右クリック無効化 /h1 script language="JavaScript" !-- function RightOff(e) { if (document.layers e.which == 3){ //NNの場合 alert("右クリックメニューは機能停止しました!"); return false; }else if (document.all event.button == 2) { //IEの場合 alert("右クリックメニューは機能停止しました!"); return false; } return true; } if(document.all){ //IEの場合 document.onmousedown = RightOff; } if(document.layers){ //NNの場合 window.onmousedown = RightOff; window.captureEvents(Event.MOUSEDOWN); } // -- /script firefoxでは無効。 h1 onLoad /h1 p ページを開いたときに起動。bodyタグに記述。 /p h1 onUnLoad /h1 p 別のページに移動したときに起動。bodyタグに記述。 /p a href="http //localhost/PukiWiki/index.[[php]]" ホームに移動 /a h1 onBlur/onFocus /h1 form input type="text" onblur="alert('onblur action.')" value="" input type="text" onfocus="alert('onfocus action.')" value="" /form h1 別ウィンドウを開く /h1 h1 タイマー /h1 script type="text/javascript" !-- var cnt = 0; var ret; function rewritePg() { var p = document.getElementById("p1"); if(p == null) { alert("p1 null."); } if( cnt % 2 == 0 ) { p.innerHTML = "bbb"; /** p.firstChild.data = "bbb" でも良い。 */ } else { p.innerHTML = "aaa"; } cnt++; ret = setTimeout("rewritePg()", 2000); } function stopRewrite() { clearTimeout(ret); } //-- /script p 2秒ごとにパラグラフの文字を変える。 /p p id="p1" aaa /p input type="button" value="開始" onClick="rewritePg()" / br input type="button" value="停止" onClick="stopRewrite()" / br / body /html
https://w.atwiki.jp/ce00582/pages/2558.html
import java.awt.*; public class java0708 { Frame fr; Button bu; TextField te; public java0708() { fr = [[new]] Frame( "フレーム" ); bu = new Button( "[[ボタン]]" ); te = new TextField(); fr.add( bu, BorderLayout.NORTH ); fr.add( te, BorderLayout.SOUTH ); fr.pack(); fr.setVisible( true ); } public static void main( String[] args ) { java0708 pon = new java0708(); } }
https://w.atwiki.jp/0x0b/pages/84.html
JAVA Java は、JDK(Java Development Kit; Java開発キット)1.0 以来、数度のメジャーバージョンアップを経ている。バージョンアップに伴い、多くのクラスとパッケージが標準ライブラリに追加されてきた。プログラミング言語JavaおよびJavaプラットフォームは、高い水準でバージョン間の互換性を保ちつつ発展してきている。 J2SE 1.4 から、Javaの開発は JCP (Java Community Process) という標準化プロセスで行うようになっている。JCP では、JSRs (Java Specification Requests) という文書群により、Javaに対する追加機能やJavaプラットフォームに対する変更の提案と規定を行う。 また、J2SE1.3以降では開発コードネームとして、メジャーバージョンには動物の名前が、マイナーバージョンには昆虫の名前が付けられる傾向がある。 言語仕様は JLS(Java Language Specification; Java言語仕様)により規定する。JLS は JSR 901 の管理下にある。 バージョンアップの過程で、言語仕様の変更だけでなく、標準クラスライブラリにおいても大きな変更が加えられている。JDK 1.0 では標準ライブラリは約200クラス/インタフェースだったが、Java SE 6 では4000以上のクラス/インタフェースとなっている。Swing や Java 2D のような全く新しいAPIが追加された。その一方で、もともと JDK 1.0 から存在していたクラスのメソッドの多くが、J2SE 5.0 での使用は推奨されないようになっている。 バージョン JDK 1.0(1996年1月23日) 最初のバージョン。プレスリリース (英語) このバージョンでは日本語などの国際化対応はなされていなかった。 JDK 1.1(1997年2月19日) いくつかの重要な機能が追加された。プレスリリース (英語) 国際化対応(日本語も含む) AWT イベントモデルにおける大規模な再構成 言語仕様に「内部クラス」が追加された JavaBeans ソフトウェアコンポーネント技術 JDBC データベース接続API Java RMI 分散オブジェクト技術 J2SE 1.2(1998年12月8日) コードネームPlayground。このバージョンから呼称が Java 2 に変更され、J2SE 5.0 までこの呼称が使われる。またエディション名が JDK から "J2SE"(Java 2 Platform, Standard Edition)に変更された。この J2SE の名称により、J2EE(Java 2 Platform, Enterprise Edition)および J2ME(Java 2 Platform, Micro Edition)の基となるエディションであることが明確化された。プレスリリース (英語) strictfp キーワード IEEE 754 に基づいた厳密な浮動小数点数の演算を行う リフレクション クラス名や、クラスに定義されている操作であるメソッド名を動的に指定して呼び出す。 Swing グラフィカルユーザインタフェースツールキットが標準ライブラリに統合された。 サンのJava仮想マシンにジャストインタイムコンパイラが備わる。 Java Plug-in さまざまなウェブブラウザにJava実行環境を組み込むことができるようになり、Javaアプレットを実行できるようになった。 Java IDL という IDL(インタフェース記述言語)の実装が導入され、CORBA 分散オブジェクト環境との相互運用ができるようになった コレクションフレームワークの導入 J2SE 1.3(2000年5月8日) コードネームKestrel。プレスリリース (英語) 新機能の概要(日本語) HotSpot Java仮想マシンが導入され、ジャストインタイムコンパイラに加えて動的再コンパイル技術、世代別ガベージコレクションを備えた高速なJava仮想マシンを使えるようになった。実際には1999年4月から J2SE 1.2 向けの HotSpot Java仮想マシンがリリースされていた。 Java RMI が CORBA ベースに変更される JavaSound 音声データを扱うAPI Java Naming and Directory Interface (JNDI) が標準ライブラリに統合される。ネーミングサービスとディレクトリサービスへのアクセス。従来は拡張機能として提供されていた。 Javaプログラムのデバッグを支援する機能群、Java Platform Debugger Architecture(JPDA)の導入。 J2SE 1.4 (2002年2月6日) コードネームMerlin。このバージョンは、JCP(Java Community Process)のもとで開発された最初のJavaプラットフォームである[3]。プレスリリース(英語) 新機能の概要(日本語) assert キーワード ある程度、「契約による設計」に基づいたプログラミングが可能となる。JSR 41 で規定された。 Perlのような正規表現のライブラリの導入により、文字列データ(テキスト)の高度な処理機能が提供される。 連鎖例外機能により、ある例外の原因となった例外を連鎖的に記録できるようになる。 NIO (New I/O) 新しい入出力機能。JSR 51で規定。 ロギング API が標準ライブラリに追加される。JSR 47で規定。 イメージ I/O API JPEG や PNG のようなフォーマットの画像イメージを読み書きするAPI JAXP (Java API for XML Processing) による統合された XML プロセサと XSLT プロセサによるXML文書処理機能のライブラリが、標準で提供されるようになった。JSR 5およびJSR 63で規定。 セキュリティと暗号化の拡張機能を標準ライブラリに統合 JCE(Java Cryptography Extension) Java暗号化拡張機能 JSSE(Java Secure Socket Extension) Javaでセキュアなインターネット通信(TLS/SSL)を実現する機能 JAAS(Java Authentication and Authorization Service) Javaの認証と権限のサービス Java Web Start の導入 Javaアプリケーションの配備と実行を簡素化する技術。JSR 56で規定。Java Web Start 自体は2001年3月に J2SE 1.3 向けのバージョンがリリースされていた。 J2SE 5.0(2004年9月30日) コードネームTiger。JSR 176 のもとで開発された。J2SE 5.0 では、言語仕様に大きく拡張が加えられ、多くの新しい言語機能が追加された。プレスリリース(英語) 新機能の概要(日本語)。もともとは J2SE 1.5 という名称だったが、この名称はすでに内部的なバージョン番号として使われていた[4]。またマーケティング上の理由もあった。 総称型 コンパイル時に静的にコレクションオブジェクトでその要素となるオブジェクトの型を安全に取り扱うことができるようになった。ほとんどの場合において型変換(キャスト)を行う必要は無くなった。JSR 14で規定された。 オートボクシング/アンボクシング int型のような基本型(primitive type)とIntegerクラスのようなラッパクラスの間の変換が自動的に行われるようになった。JSR 201で規定。 列挙型 enumキーワードにより、Javaで安全な列挙型を実現するデザインパターンであるタイプセーフenumパターンが言語レベルでサポートされ、列挙型(順序つきリストの値、多くの場合は定数)を安全に定義することができる。このタイプセーフenumパターンの詳細は、ジョシュア・ブロックほか(2001)pp.97-106 「第5章 項目21 enum構文をクラスで置き換える」を参照。以前のバージョンまではこのような場合、タイプセーフではない整数の定数値で定義するか、プログラマが自分でタイプセーフenumパターンで実装するかの、どちらかの方法しか無かった。JSR 201で規定。 可変引数 メソッドの最後の引数を、型名に続けて3個のドットを記述することで可変個数の引数渡しの記述ができるようになった(例 void drawText(String... lines))。メソッド呼び出しにおいて、最後の引数に関してはその型の任意の個数のパラメタを渡すことができる。その際、実際には内部的に最後の引数は配列としてメソッドに渡される。 メタデータ 注釈(アノテーション)とも言い、クラスやメソッドに、"@" でタグ付けされた付加的な情報を記述することができるようになる。メタデータを扱うツールで処理することにより、決まった型のコードを生成することができるようになり、Javaによる開発で機械的な作業を減らして開発効率を上げることができる。JSR 175で規定。 拡張forループ(for-each文) for文によるループの構文が拡張された。配列やコレクションオブジェクト(ListやSetなど)の各要素オブジェクトに対して、反復(繰り返し)処理をする専用の構文を使うことで、コーディングを簡略化しミスを減らすことができるようになった。この構文を使う場合コレクションは、配列か、Iterableインタフェースを実装したコレクションオブジェクトである必要がある。この構文を使ったコーディング例を示す。 void displayWidgets (Iterable Widget widgets) { for (Widget w widgets) { w.display(); } } この例では、widgets という変数名のコレクションオブジェクト内の、各Widgetオブジェクトを反復して繰り返し処理する。各Widgetオブジェクトにはループサイクルごとに w という変数名をつける。各ループサイクルで、w に対してWidget型で定義されているdisplay()メソッドを呼び出す。拡張forループはJSR 201で規定された。 Java SE 6(2006年12月11日) コードネームMustang。JSR 270のもとで開発された。Java SE 6 においては、サンは命名方針を変更して、"J2SE" から Java SE に変更し、バージョン番号から ".0" の部分を廃止している[5]。 Scripting for the Java Platform AWT、Swing の高速化。 Windowsシステムトレイのサポート Windows Aero (Windows Vista) のルック・アンド・フィール テキストのUnicode正規化 (java.text.Normalizer) JDBC 4.0 JAXP (Java API for XML Processing) 1.4 Webサービス Java SE 6 Update 10 Java SE 6 Update 10 が2008年10月22日にリリースされた。Update 8 と 9 が省略され、7 の次が 10 となった。Javaの動作速度が改善され、アプリケーションやアプレットの起動を高速化するJava Quick Starterが搭載され、Javaのインストールを高速化する、Java Kernelが搭載された[6]。JavaアプレットやJava Web Startの起動を容易にするための、配備ツールキットが公開された Java SE 7(2011年7月28日) コードネームはDolphinである[7]。2006年に開発が始まった。元々は2008年春にリリースされる見通しであったが、何度かリリース予定が変更された。2007年8月の時点では2009年1月をリリース目標としていたが、2008年12月、ジェームズ・ゴスリンは、「私の勝手な憶測だが」という注意書き付きで、2010年6月以降のリリースを予測し]、2009年11月には2010年9月以降のリリース予定に変更された。2010年9月に、これ以上の延期を避けるため、大きな言語仕様の改訂などの部分は Java SE 8 に先送りし、Java SE 7 を2011年中頃に、Java SE 8 を2012年終わり頃に提供するという目標を立て、結局2011年7月28日にリリースした。 Java SE 7 に追加された項目は以下のとおりである。 動的型付け言語のために、invokedynamic の追加 (JSR 292) NIO.2 (JSR 203), Stream Control Transmission Protocol, Sockets Direct Protocol JDBC 4.1 コレクションや並列性のライブラリの機能追加 (JSR 166y) JAXP, JAXB, JAX-WS の更新 ClassLoader の改善 Project Coin の一部 Java SE 8 2010年9月現在、以下の項目を Java SE 8 に追加予定。JSR 337[13]にて仕様が規定され、2012年10月に仕様を固める目標である。2012年終わり頃にリリース予定。8年ぶりに言語仕様を改訂予定。 クロージャの導入 (Project Lambda, JSR 335) 言語レベルでのモジュール化のサポート (Project Jigsaw, JSR 294) 型アノテーション (JSR 308) Swing アプリケーションフレームワーク (JSR 296)