07
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
RECOMMEND
RECOMMEND
スティーブ・ジョブズ I
スティーブ・ジョブズ I (JUGEMレビュー »)
ウォルター・アイザックソン
取材嫌いで有名なスティーブ・ジョブズが唯一全面協力した、本人公認の決定版評伝。
RECOMMEND
RECOMMEND
ザ・マインドマップ
ザ・マインドマップ (JUGEMレビュー »)
トニー・ブザン,バリー・ブザン
SPONSORED LINKS
RECENT COMMENT
RECENT TRACKBACK
MOBILE
qrcode
OTHERS
スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - | - | - |
技術書籍本棚ページ作成中
 自分の持っている技術書籍一覧を作成中。


Googleサイト内検索を利用すれば、必要な時に調べられる。
目次も掲載しているので。

shi-n | 書籍 | 16:26 | comments(0) | trackbacks(0) | - | - |
Java World Tokyo 2014
 2014/5/22はJava World Tokyo 2014です。

Java 8発表後のJavaの祭典です。楽しみです。


shi-n | 学び | 09:59 | comments(0) | trackbacks(0) | - | - |
Tortoise SVN マニュアル翻訳
Tortoise SVN マニュアル翻訳のページ。

http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/

会社の開発環境はSVNで管理されているため、ちょっと困ったときに便利です。

shi-n | 学び | 08:27 | comments(0) | trackbacks(0) | - | - |
[Java] JTextFieldの枠線を無くす
JTextFieldの枠線。

JTextFiels jtf = new JTextField();
jtf.setBorder(null);

これで枠線をなくせる。

Eclipse WindowBuilderだと、「拡張プロパティーの表示」を選ばないと、
プロパティ一覧に出てこない・・・。
探してしまった。

shi-n | 学び | 19:05 | comments(0) | trackbacks(0) | - | - |
[Java] ICMP ping
JavaでICMP Ping。

・isReachableで。何をやっても1000msかかるのは指定が悪いのか???
  Reachableは正確なICMPではないし。

       boolean isReachable = false;
        long start,end;
        try {
            InetAddress address = InetAddress.getByName("10.0.0.1");

            start = System.currentTimeMillis();
            isReachable = address.isReachable(2000);
            end = System.currentTimeMillis();
            if(isReachable == true) {
                System.out.println("address.isReachable OK! : " + (end - start));
            }
            else {
                System.out.println("address.isReachable NG! : " + (end - start));
            }

        } catch (Exception e) {
            System.out.println(e);
        }


・OSのpingコマンドを使用して。こっちのが正しいと思う。

        try {
            InetAddress target = InetAddress.getByName("10.0.0.1");

            // Windows の場合
            String[] command = {"ping", "-n", "1", "-w", "1000", target.getHostAddress()};
// Linux の場合
// String[] command = {"ping", "-c", "1", "-t", TIMEOUT, inetAddress.getHostAddress()};
            return new ProcessBuilder(command).start().waitFor() == 0;
        }
        catch(Exception e) {
            System.out.println(e);
        }
        return false;



こんな結果になる。

address.isReachable OK! : 1011
ping ProcessBuilder OK! : 68

shi-n | 学び | 20:55 | comments(0) | trackbacks(0) | - | - |
[Java] クラスのフィールド一覧を表示
クラスのフィールド(変数名)一覧を出力したくサンプルを。

import java.lang.reflect.Field;
import javax.swing.JTextField;

public class ClassTest {
    public static void main(String[] args) {
        JTextField jt = new JTextField();
        System.out.println("パッケージ名 : " + jt.getClass().getPackage());
        System.out.println("クラス名(getSimpleName) : " + jt.getClass().getSimpleName());
        System.out.println("クラス名(getName) : " + jt.getClass().getName());
        System.out.println("[フィールド]");
        Field[] fields = jt.getClass().getFields();
        for(Field f : fields) {
            System.out.println("  " + f.getType() + " : " + f.getName());
        }
    }
}


こんな感じの結果になります。

パッケージ名 : package javax.swing, Java Platform API Specification, version 1.6
クラス名(getSimpleName) : JTextField
クラス名(getName) : javax.swing.JTextField
[フィールド]
  class java.lang.String : notifyAction
  int : CENTER
  int : TOP
  int : LEFT
  int : BOTTOM
  int : RIGHT
  int : NORTH
  int : NORTH_EAST
  int : EAST
  int : SOUTH_EAST
  int : SOUTH
  int : SOUTH_WEST
  int : WEST
  int : NORTH_WEST
  int : HORIZONTAL
  int : VERTICAL
  int : LEADING
  int : TRAILING
  int : NEXT
  int : PREVIOUS
  class java.lang.String : FOCUS_ACCELERATOR_KEY
  class java.lang.String : DEFAULT_KEYMAP
  int : WHEN_FOCUSED
  int : WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
  int : WHEN_IN_FOCUSED_WINDOW
  int : UNDEFINED_CONDITION
  class java.lang.String : TOOL_TIP_TEXT_KEY
  float : TOP_ALIGNMENT
  float : CENTER_ALIGNMENT
  float : BOTTOM_ALIGNMENT
  float : LEFT_ALIGNMENT
  float : RIGHT_ALIGNMENT
  int : WIDTH
  int : HEIGHT
  int : PROPERTIES
  int : SOMEBITS
  int : FRAMEBITS
  int : ALLBITS
  int : ERROR
  int : ABORT

shi-n | 学び | 16:50 | comments(0) | trackbacks(0) | - | - |
[Java] JTreeにノードを追加
JTreeのノード追加スピードが知りたかったので、1000000ノードを追加してみました。

        DefaultTreeModel model = (DefaultTreeModel)jTree1.getModel();
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent();

        long start,end;

        start = System.currentTimeMillis();
        for(int i = 0; i< 1000000; i++ ) {
            node.add(new DefaultMutableTreeNode("new node" + i));
        }
        end = System.currentTimeMillis();
        System.out.println("End1 : " + (end - start));

        start = System.currentTimeMillis();
        model.reload();
        end = System.currentTimeMillis();
        System.out.println("End2 : " + (end - start));

こんなソースで。

1回目
End1 : 722ms
End2 : 2549ms

2回目
End1 : 717ms
End2 : 2436ms

3回目
End1 : 769ms
End2 : 2539ms

NetBeans上で動かしました。
Core i5 8GBメモリマシンです。

表示のリロードの方が時間がかかります。

shi-n | 学び | 21:34 | comments(0) | trackbacks(0) | - | - |
[Java] 文字列の長さを測る。
Javaで文字列の長を測るを研究。

public class StringTest {
    public static void main(String[] args) {
        String str1 = "ABCDEFGHIJ1234567890";
        String str2 = "ABCDEFGHIJ1234567890";
        byte[] bstr1 = str1.getBytes();
        byte[] bstr2 = str2.getBytes();
        byte[] butf8str1 = null;
        byte[] butf8str2 = null;
        byte[] butf16str1 = null;
        byte[] butf16str2 = null;
        byte[] buastr1 = null;
        byte[] buastr2 = null;
        try {
            butf8str1 = str1.getBytes("UTF-8");
            butf8str2 = str2.getBytes("UTF-8");
            butf16str1 = str1.getBytes("UTF-16");
            butf16str2 = str2.getBytes("UTF-16");
            buastr1 = str1.getBytes("US-ASCII");
            buastr2 = str2.getBytes("US-ASCII");
        }
        catch(Exception excp) {
            
        }
        System.out.println("str1 = [" + str1 + "]");
        System.out.println("String.length             : " + str1.length());
        System.out.println("String.codePointCount     : " + str1.codePointCount(0, str1.length()));
        System.out.println("String.getBytes           : " + bstr1.length);
        System.out.println("String.getBytes(UTF-8)    : " + butf8str1.length);
        System.out.println("String.getBytes(UTF-16)   : " + butf16str1.length);
        System.out.println("String.getBytes(US-ASCII) : " + buastr1.length);
        System.out.println("make func getLengh        : " + getLength(str1));
        System.out.println();
        System.out.println("str1 = [" + str2 + "]");
        System.out.println("String.length             : " + str2.length());
        System.out.println("String.codePointCount     : " + str2.codePointCount(0, str2.length()));
        System.out.println("String.getBytes           : " + bstr2.length);
        System.out.println("String.getBytes(UTF-8)    : " + butf8str2.length);
        System.out.println("String.getBytes(UTF-16)   : " + butf16str2.length);
        System.out.println("String.getBytes(US-ASCII) : " + buastr2.length);
        System.out.println("make func getLengh        : " + getLength(str2));
    }
    
    public static int getLength(String str) {
        int length = 0;
        for(int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if((ch >= 0x20) && (ch <= 0x7E)) {
                length++;
            }
            else if((ch >= 0xFF61) && (ch <= 0xFF9F)) {
                length++;
            }
            else {
                length += 2;
            }
        }
        return length;
    }
}

★結果★
str1 = [ABCDEFGHIJ1234567890]
String.length             : 20
String.codePointCount     : 20
String.getBytes           : 20
String.getBytes(UTF-8)    : 20
String.getBytes(UTF-16)   : 42
String.getBytes(US-ASCII) : 20
make func getLengh        : 20

str1 = [ABCDEFGHIJ1234567890]
String.length             : 20
String.codePointCount     : 20
String.getBytes           : 60
String.getBytes(UTF-8)    : 60
String.getBytes(UTF-16)   : 42
String.getBytes(US-ASCII) : 20
make func getLengh        : 40



shi-n | 学び | 11:29 | comments(0) | trackbacks(0) | - | - |
Java HashMap 初期化/Keyから値/値からKey
「HashMapの初期化、Keyから値、値からKey」

// あり/なし
private static final HashMap<String, Boolean> MAP_ONOFF = new HashMap<String, Boolean>() {
    {
       put("あり", true);
       put("なし", false);
    }
};
protected static final BidiMap BITMAP_ONOFF = new DualHashBidiMap(MAP_ONOFF);

BidiMapとDualHashBidiMapは「org.apache.commons.collections」パッケージです。
便利ですね。

BITMAP_ONOFF.get("あり"); ⇒ 普通に値取得
BITMAP_ONOFF.getKey(true); ⇒ 値からKey取得

よくHashMapを作成して、その逆を作成している人がいるが、
上記は便利。

shi-n | 学び | 15:03 | comments(0) | trackbacks(0) | - | - |
WindowBuilder
EclipseのWindowBuilderを使い中。

エディットして完成したクラスから、画面系部品の変数をベースクラスに持っていくと、Designタブで表示してくれなくなる。
画面編集用にダミーで変数をおいておくしかない。
実動作時はコメントアウト。美しくない・・・。
何か良い方法はないものか。

文字列を変数に置き換えると、<dynamic>表示になる。
分かりやすいといえば、分かりやすい。

まだまだ、使用中なので、いろいろと積み重ね中です。

shi-n | 学び | 06:02 | comments(0) | trackbacks(0) | - | - |
1/65PAGES | >> |