Tips のバックアップ差分(No.11)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Tips へ行く。
- 1 (2012-03-13 (火) 15:15:49)
- 2 (2012-04-30 (月) 06:14:03)
- 3 (2012-05-16 (水) 14:04:04)
- 4 (2012-07-04 (水) 13:11:51)
- 5 (2012-07-04 (水) 16:34:18)
- 6 (2012-07-04 (水) 21:41:12)
- 7 (2012-07-16 (月) 23:41:18)
- 8 (2012-07-17 (火) 11:38:19)
- 9 (2012-07-17 (火) 15:29:42)
- 10 (2012-07-19 (木) 12:20:21)
- 11 (2012-07-24 (火) 18:01:09)
- 12 (2012-09-20 (木) 14:33:13)
- 13 (2012-10-04 (木) 21:48:17)
- 14 (2013-01-25 (金) 14:34:38)
- 15 (2013-03-07 (木) 16:47:45)
- 16 (2013-10-31 (木) 18:46:47)
- 17 (2014-03-05 (水) 17:58:40)
- 18 (2014-03-11 (火) 15:12:01)
- 19 (2014-09-02 (火) 15:52:58)
- 20 (2014-09-03 (水) 18:22:36)
- 21 (2014-09-26 (金) 19:00:17)
- 22 (2014-09-29 (月) 14:41:17)
- 23 (2014-10-02 (木) 15:08:03)
- 24 (2014-11-19 (水) 19:36:39)
- 25 (2015-10-23 (金) 18:16:10)
- 26 (2015-10-23 (金) 21:27:26)
- 27 (2015-10-30 (金) 16:39:51)
- 28 (2015-11-30 (月) 17:16:26)
- 29 (2016-03-03 (木) 18:49:56)
- 30 (2016-03-31 (木) 15:43:43)
- 31 (2016-04-20 (水) 20:29:56)
- 32 (2016-04-26 (火) 15:07:10)
- 33 (2016-04-26 (火) 17:01:53)
- 34 (2016-05-02 (月) 20:10:26)
- 35 (2016-09-26 (月) 19:25:52)
- 36 (2017-03-30 (木) 14:23:02)
- 37 (2017-04-04 (火) 14:13:45)
- 38 (2017-04-04 (火) 14:17:08)
- 39 (2017-04-07 (金) 13:51:51)
- 40 (2017-07-12 (水) 19:30:26)
- 41 (2017-07-13 (木) 14:07:55)
- 42 (2017-07-14 (金) 13:49:09)
- 43 (2017-07-14 (金) 18:18:18)
- 44 (2018-02-27 (火) 14:30:05)
- 45 (2019-02-07 (木) 16:28:55)
- 46 (2019-04-19 (金) 13:43:27)
- 47 (2019-04-25 (木) 17:11:27)
- 48 (2022-08-20 (土) 22:15:25)
- 49 (2024-02-21 (水) 02:06:55)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:Java Tips RIGHT:Posted by &author(aterai); at 2011-01-25 * Java Tips [#t866d432] #contents(big) ** 概要 [#y77453b1] Java のデバッグ(Swing)、Java用のバッチファイル、API-doc 翻訳などに関するメモをまとめています。 * Swing debug agent[#l59af361] - [[Swingコンポーネントの再描画をJXLayerのDebugPainterを使ってデバッグ>Tips/DebugPainterAgent]] -- JXLayer のDebugPainter を使ってコンポーネントの再描画を可視化する javaagent を作成してデバッグを行います。 - [[SwingアプリケーションのLookAndFeelを外部から切り替える>Tips/LookAndFeelDebugAgent]] -- SwingアプリケーションのLookAndFeelを agent を使って外部から切り替えてデバッグします。 * Javadoc 翻訳 [#h4010d75] [[Javadoc]] - [[Javadoc/Japanese]] -- 日本語訳で修正した方が良さそうなもの。 - [[Javadoc/Nitpick]] -- 翻訳元から修正した方が良さそうなもの。 - [[Javadoc/Typo]] -- Typo、変換ミスなど。 - [[Javadoc/JDK7]] -- Java SE 7 API のドキュメントで未翻訳なもの(主にSwing関係)。 * JRuby [#a5d5a253] - [[JRuby+Swing - てんぷらメモ@はてな>http://d.hatena.ne.jp/aterai/searchdiary?word=%2a%5bJRuby%5d]] * JRuby [#rd5be1f5] - [[JRuby]]に移動 ---- - JRuby One-Liner で、UIManagerのDefaults.keySetを一覧表示する > jruby -rjava -e "javax.swing.UIManager.lookAndFeelDefaults.keySet.each{|o| p o}" ---- > chcp 現在のコード ページ: 932 > jruby -J-Dfile.encoding=UTF-8 -rjava -e 'p java.net.URLEncoder.encode("日本語","UTF-8")' > jruby -J-Dfile.encoding=UTF-8 -rjava -e "puts java.net.URLEncoder.encode('日本語','UTF-8')" > jruby -J-Dfile.encoding=UTF-8 -rjava -e 'puts java.net.URLEncoder.encode(""日本語"",""UTF-8"")' > jruby --1.9 -U -rjava -e 'puts java.net.URLEncoder.encode("日本語","UTF-8")' > jruby -J-Dfile.encoding=UTF-8 -ruri -e 'puts URI.encode("日本語")' %E6%97%A5%E6%9C%AC%E8%AA%9E > jruby --1.9 -rjava -e 'puts java.net.URLEncoder.encode("日本語","MS932")' > jruby --1.9 -ruri -e 'puts URI.encode_www_form_component("日本語")' %93%FA%96%7B%8C%EA ---- - JRuby 1.7.0.preview1 で以下のようなArgumentErrorが発生する場合、-J-Dfile.encoding=UTF-8 でOK? -- 「-J-Dfile.encoding=UTF-8」は「-E UTF-8」と同じ? -- [http://jp.rubyist.net/magazine/?0010-CodeReview Rubyist Magazine - あなたの Ruby コードを添削します 【第 1 回】 pukipa.rb] -- wiki以下のsplitを行う対象ファイル(この例ではsrc)がUTF-8 #code{{ lines = src.rstrip.split(/\r?\n/).map {|line| line.chomp } }} C:\pukiwiki2markdown>jruby p2m.rb wiki ArgumentError: invalid byte sequence in Windows-31J split at org/jruby/RubyString.java:4643 to_html at p2m.rb:45 main at p2m.rb:219 each at org/jruby/RubyArray.java:1611 main at p2m.rb:214 (root) at p2m.rb:234 C:\pukiwiki2markdown>jruby -J-Dfile.encoding=UTF-8 p2m.rb wiki wiki/2010-04-12-swing-leaftreecelleditor.markdown wiki/2007-06-18-swing-leftclippedcombobox.markdown ... C:\pukiwiki2markdown>jruby -E UTF-8 p2m.rb wiki wiki/2011-07-18-swing-listmouseselection.markdown ... ---- - JRuby + SWT のサンプル -- [http://www.rubyinside.com/jruby-swt-future-cross-platform-ruby-desktop-app-development-298.html JRuby + SWT = Future Cross Platform Ruby Desktop App Development?] --- via [http://www.javalobby.org/java/forums/t84113.html:title=Frankengui? Using SWT and Ruby for your GUIs] * 「Java Swing Hacks」本のレビュー [#ef1cba4d] - [http://d.hatena.ne.jp/aterai/20060502 「Java Swing Hacks」本のレビュー - てんぷらメモ@はてな] -- [http://d.hatena.ne.jp/aterai/searchdiary?word=%2a%5bSwing%20Hacks%5d 記事一覧] -- [http://d.hatena.ne.jp/aterai/archive?word=%2a%5bSwing%20Hacks%5d タイトル一覧] * Java その他 [#i6c38ca4] - [[環境変数JAVA_HOMEを変更して使用するJDKを切り替える>Tips/SetJAVA_HOME]] -- 環境変数 JAVA_HOME を変更するバッチファイルを作成して、コマンドプロンプトで使用するJDKを切り替えます。 - [[Rhinoでgoogle-prettify.jsを実行する>Tips/GooglePrettifyRhino]] -- Rhinoでgoogle-prettify.jsを実行し、ソースコードをハイライトされたHtml(google sites用)に変換します。 - [[Java API Doc の「日本語、英語」をブックマークレットで切り替える>Tips/APIDocEnJa]] -- JavaのAPIドキュメントをブックマークレットを使って、日本語と英語で切り替えます。 - [[JNIでJFrameのHWNDを取得>Tips/JNI_HWND]] -- JNI(Java Native Interface) で JFrame(SunAwtFrame) の HWND(ウィンドウハンドル) を取得します。 * Java メモ [#afdfdb63] ** 環境変数 [#n357d6c7] - http://cr.openjdk.java.net/~gbenson/zero-08/raw_files/new/hotspot/src/share/vm/utilities/vmError.cpp #code{{ // List of environment variables that should be reported in error log file. const char *env_list[] = { // All platforms "JAVA_HOME", "JRE_HOME", "JAVA_TOOL_OPTIONS", "_JAVA_OPTIONS", "CLASSPATH", "JAVA_COMPILER", "PATH", "USERNAME", // Env variables that are defined on Solaris/Linux "LD_LIBRARY_PATH", "LD_PRELOAD", "SHELL", "DISPLAY", "HOSTTYPE", "OSTYPE", "ARCH", "MACHTYPE", // defined on Linux "LD_ASSUME_KERNEL", "_JAVA_SR_SIGNUM", // defined on Windows "OS", "PROCESSOR_IDENTIFIER", "_ALT_JAVA_HOME_DIR", (const char *)0 }; }} ** コマンドプロンプトからデフォルトのロケールを変更 [#p9b18e96] > javac -J-Duser.language=en Test.java > java -Duser.language=en Test - [http://java.sun.com/javase/technologies/core/basic/intl/faq_ja.jsp#set-default-locale Java 国際化 FAQ] アプリケーションの外部からデフォルトのロケールを設定できますか。 使用している Java プラットフォームの実装によって異なります。通常、初期のデフォルトロケールは、ホストオペレーティングシステムのロケールによって決まります。Sun の JRE のバージョン 1.4 以降では、コマンド行から user.language、user.country、および user.variant の各システムプロパティを設定することで、初期のデフォルトロケールを変更できます。たとえば、初期のデフォルトロケールとして Locale("th", "TH", "TH") を選択するには、次のコマンドを使用します。 java -Duser.language=th -Duser.country=TH -Duser.variant=TH MainClass この機能を使用できない実行環境もあるため、この機能はテスト目的だけに使用してください。 ** コード整形 [#k1323c34] 個人的な好みと習慣で、Javaのソースコードのインデントは、エディタでは4space、Webサイトにソースコードを表示する場合は2spaceにしているので、xyzzy などのエディタから以下のように整形。 astyle --style=java --mode=java --indent=spaces=2 astyle --style=java --mode=java --indent=spaces=2 Hoge.java Markdown 形式の Stack Overflow などにソースコードを貼り付ける場合は、以下のようにして、行頭にタブ(またはスペース4つ)を追加。 astyle --style=java --mode=java --indent=spaces=2 | sed -e "s/^\(.*\)$/\t\1/" astyle --style=java --mode=java --indent=spaces=2 | sed -e "s/^\(.*\)$/ \1/" ** ソースコードのコピー [#c8b1879b] Java に限らず、以下、Opera 12.50で、Clipboard API を使い、preタグで囲まれたソースコードを簡単にコピーする方法のテスト。 - [http://d.hatena.ne.jp/aterai/20080725/1216954636 preタグで囲まれたソースコードを簡単にコピーする方法 - てんぷらメモ@はてな] - [http://www.w3.org/TR/clipboard-apis/ Clipboard API and events] - [http://my.opera.com/desktopteam/blog/2012/07/06/marlin-1250-swim Opera Desktop Team - First bite of 12.50 ‘Marlin’: Clipboard API, redesigned key event handling, -webkit- CSS, and Notification Center] - [http://domes.lingua.heliohost.org/webapi/intro-webplatform1.html#section-1-3 クリップボード API - Introduction to the Web Platform - DOM ECMAScripting] #code{{ (function() { var listener = function(e) { var tx = document.createElement("textarea"), div = document.createElement("div"), closeListener = function(e) { switch(e.type) { case 'copy': case 'cut': var dataTransfer = e.clipboardData; dataTransfer.items.add(this.innerText, 'text/plain'); this.parentNode.replaceChild(this.originalPre, this); e.preventDefault(); break; } }; tx.style.width = parseInt(getComputedStyle(this,"").width).toString()+"px"; tx.style.height = "240px"; tx.originalPre = this; // ctrl-c 無しでコピーできるかもと思ったけど… // var event = new ClipboardEvent('copy', { bubbles: true, cancelable: true } ); // var dataTransfer = event.clipboardData; // dataTransfer.items.add("aaaaaaaaaaaaaaaaaaaaaaa", "text/plain"); // //this.parentNode.replaceChild(this.originalPre, this); // document.dispatchEvent(event); // //event.preventDefault(); tx.addEventListener("keydown", function(e) { if(e.keyCode=="27") { // ESC this.parentNode.replaceChild(this.originalPre, this); } }, false); tx.addEventListener("dblclick", function(e) { this.parentNode.replaceChild(this.originalPre, this); }, false); div.innerHTML = this.innerHTML.replace(/<br[ \/]*>/ig, "\n").replace(/<.*?>/mg, ""); tx.value = div.childNodes[0].nodeValue.replace(/\xA0/g, ' '); this.tx = tx; this.parentNode.replaceChild(this.tx, this); this.tx.focus(); this.tx.select(); tx.addEventListener('copy', closeListener, false); tx.addEventListener('cut', closeListener, false); }, pre = document.getElementsByTagName("pre"), i = 0, len = pre.length; for(; i<len; i++) { pre[i].addEventListener("dblclick", listener, false); } }()); }} * コメント [#k546af30] - [[Nitpick]]を[[Javadoc]]以下に分割して移動。 -- [[aterai]] &new{2011-11-11 (金) 16:57:12}; #comment