SyntaxHighlighter

2013年8月6日火曜日

【Java】外部プロセスをスレッド起動する

import java.io.IOException;
import java.util.ArrayList;

// 外部プロセスをスレッド起動するクラス
public class process {

private static final process process_ = new process();
process(){
}

public static void main(String[] args) {

//プロセス起動スレッド開始
PlayPro play = process_.new PlayPro();
play.start();
}

// プロセス起動スレッドクラス
class  PlayPro extends Thread{

public void run() {
try {

//コマンド作成
ArrayList<String> list = new ArrayList<String>();
list.add("C:\\Program Files\\ffftp\\FFFTP.exe");
// list.add("");//引数なし

//プロセス開始
ProcessBuilder pb = new ProcessBuilder(list);
Process p = pb.start();

// プロセス終了待ち
int ret = p.waitFor();
System.out.println("戻り値:" + ret);

} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

2013年6月30日日曜日

【Blogger】表のスタイル(CSS)を設定する

BloggerでCSSを設定するテストです。
サンプルテーブルを作って、CSSのスタイル適用の確認をします。


【テーブルサンプル】
------------------------------------------------------
何も指定していないただのテーブル

タイトル
項目1 項目2 項目3
No1 データ1 内容1
No2 データ2 内容2
No3 データ3 内容3


【スタイル適用後テーブル】
------------------------------------------------------
クラスを設定します。<table class="sample">


タイトル
項目1 項目2 項目3
No1 データ1 内容1
No2 データ2 内容2
No3 データ3 内容3


【手順】
------------------------------------------------------
1)管理画面から「テンプレート」→「カスタマイズ」ボタン押下
2)テンプレートデザイナーから「上級者向け」→「CSS追加」を選択
3)テーブル用のsampleクラスを作成していきます。


以下のような CSSを設定してみました。
------------------------------
/* テーブル幅設定 */
table.sample { width:50%; }

/* テーブル枠線とカラー設定 */
table.sample,.sample th,.sample td{
    border: 1px solid #800080;
    border-collapse:collapse;
}
/* タイトルの設定 */
.sample caption {
    color:#000080;
    font-weight:bold;
}
/* 項目行のカラー設定 */
.sample th{
    color:#FFF;
    background-color:#800080;
}

------------------------------

表を確認しながら設定出来きて便利です。



2013年6月22日土曜日

【Java】外部のEXEを起動する

外部のプログラム起動したい

// 外部のEXE起動
private static void StartExe(){
   try {
 
  // ファイルが存在するか確認
  File file = new File(" C:\\test.exe");
  if ( !file.exists() ){
  System.out.println("ファイルが存在しません!");
  return;
   }
     // 独立したプロセスで実行
      Runtime rt = Runtime.getRuntime();
     rt.exec(file.getName());

   } catch (IOException ex) {
     ex.printStackTrace();
   }
}

----------------------------------------------------------

■参考

//引数を指定して実行
exec(String[] array) 

//Java 仮想マシン内の空きメモリーの量を返します。
freeMemory() 

2013年6月19日水曜日

【Java】列挙型 enumの定義方法

JavaのEnumにつまずいてしまった。

 typedef enum eType{ DATA_TYPE_AO = 0, DATA_TYPE_RED }

と、 C言語のように単純に、上記のような列挙型を作成して番号を取得したいだけだったが、
ダメなのか…JavaではEnumの概念が変わるらしい…

という事で、「新規作成」→「列挙型」を作成する(あるんだ!)
これも面倒だと思ったが、こっちのが便利!欲しいモノをいくらでも足せる(笑)

【dataType.Java】
------------------------------------------------------------
public enum dataType {

DATA_TYPE_AO  {
   @Override public int getPos() {return 0; }
   @Override public String getName() {return "青"; }
},
DATA_TYPE_RED  {
   @Override public int getPos() {return 1; }
   @Override public String getName() {return "赤"; }
};

public abstract int getPos(); // 番号取得
public abstract String getName(); // 名前取得
}
------------------------------------------------------------

という列挙型を作ってみました。

使用方法は、
------------------------------------------------------------
dataType  type = dataType.DATA_TYPE_AO  ;
int no = type.getPos();
------------------------------------------------------------

no  = 0 となる

ちなみに、定義のみて使いたい場合は以下で使える。
enum eType{ DATA_TYPE_AO, DATA_TYPE_RED }




2013年6月15日土曜日

【WordPress】TCDで子テーマを作る

忘れたころに必要になりそうなので、とりあえずメモっとく。


親テーマ:dynamic
子テーマ:dynamic_child

1)子テーマのディレクトリを作成する
親テーマと同じ階層に子テーマ用のディレクトリを作成する
wordpress/wp-content/themes/dynamic_child

2)子テーマのスタイルシートを作成する

wordpress/wp-content/themes/dynamic_child/style.css

【style.cssの内容】
--------------------------------------------------
@charset "utf-8";
/*
Theme Name:Dynamic Child
Description:Dynamicの子テーマ
Template:dynamic
Version:1
*/
@import url('../dynamic/style.css');
--------------------------------------------------
【説明】
@charset "utf-8";       ←日本語でメモを表示したいので追加(無くても良い)
Theme Name:Dynamic Child ←子テーマ名(必須)
Template:dynamic       ←親テーマのディレクトリ(必須)
@import url('../dynamic/style.css'); ←親テーマのスタイルシートをインポート(※1)

※1:スタイルシートを1から作る場合は不要だが、一部のみ変更したいから
  親テーマのスタイルを継承する

3)親テーマの改修

functions.php内のget_stylesheet_directory()メソッドを検索して「TEMPLATEPATH」に変更する

※get_stylesheet_directory()のままだと、プログラムが読み込むディレクトリが子テーマのディレクトリになるため、何もないフォルダを参照して起動時に画面が真っ白になる

4)管理画面のテーマオプションのフォーマットを適用する
これは色々方法がある…

案1)子テーマに親テーマの「admin/my_admin.css」を持ってくる
   →子テーマでテーマオプションのスタイルもカスタマイズも出来る

案2)親テーマのfunctions.php内で自身のディレクトリを参照させるように改造
   get_bloginfo('stylesheet_directory')をget_bloginfo('template_directory')に変更する

案3)子テーマでfunctions.phpを継承し、 my_admin_CSS()を作成して読み込ませるディレクトリを親テーマに変更する。


以上で子テーマが作成可能。かなり便利ではないでしょうか。





2013年6月1日土曜日

【Java】テキストエリアの折り返し

package gui;

// テーブル設定
public class TaxtArea extends JPanel{
    public TaxtArea() {
        super(new BorderLayout());
        String str0 = "D未設定エリア未設定エリア未設定エリア未設定エリア未設定エリア";
        String str1 = "テキストエリアの動作確認";
        String str2 = "JTextArea JTextArea JTextArea JTextArea";
        String str3 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";

        String[] columnNames = {"Default", "JTextArea", "JTextArea notレンダラ"};
        Object[][] data = {
            {str0, str1, str2}, {str0, str1, str2},
            {str3, str3, str3}, {str3, str3, str3}
        };
        DefaultTableModel model = new DefaultTableModel(data, columnNames) {
            @Override public Class<?> getColumnClass(int column) {
                return getValueAt(0, column).getClass();
            }
        };
        JTable table = new JTable(model);
        table.setRowSelectionAllowed(true);
        table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        table.setRowHeight(50);

        JTableHeader tableHeader = table.getTableHeader();
        tableHeader.setReorderingAllowed(false);

        //2列目にテキストエリアレンダラセット
        TableColumnModel mdl = table.getColumnModel();
        TableColumn col = mdl.getColumn(1);
        col.setCellRenderer(new TextAreaCellRenderer());

        add(new JScrollPane(table));
        setPreferredSize(new Dimension(320, 240));
    }

    // メイン
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override public void run() {
                createAndShowGUI();
            }
        });
    }
    // フレーム設定
    public static void createAndShowGUI() {
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }catch(Exception e) {
            e.printStackTrace();
        }
        JFrame frame = new JFrame("TITLE");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.getContentPane().add(new TaxtArea());
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
// テキストエリアレンダラ
// 文字の折り返しを設定する
class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {
    //public static class UIResource extends TextAreaCellRenderer implements javax.swing.plaf.UIResource {}
    public TextAreaCellRenderer() {
        super();
        setLineWrap(true); // 折り返しON
        setBorder(BorderFactory.createEmptyBorder(0,5,0,5));
        //setName("Table.cellRenderer");
    }
    @Override public Component getTableCellRendererComponent(JTable table, Object value,
                                                   boolean isSelected, boolean hasFocus,
                                                   int row, int column) {
        if(isSelected) {
            setForeground(table.getSelectionForeground());
            setBackground(table.getSelectionBackground());
        }else{
            setForeground(table.getForeground());
            setBackground(table.getBackground());
        }
        setFont(table.getFont());
        setText((value ==null) ? "" : value.toString());
        return this;
    }
    //Overridden for performance reasons. ---->
    @Override public boolean isOpaque() {
        Color back = getBackground();
        Component p = getParent();
        if(p != null) {
            p = p.getParent();
        } // p should now be the JTable.
        boolean colorMatch = back != null && p != null && back.equals(p.getBackground()) && p.isOpaque();
        return !colorMatch && super.isOpaque();
    }
    @Override protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
        //String literal pool
        //if(propertyName=="document" || ((propertyName == "font" || propertyName == "foreground") && oldValue != newValue)) {
        if("document".equals(propertyName) || oldValue != newValue && ("font".equals(propertyName) || "foreground".equals(propertyName))) {
            super.firePropertyChange(propertyName, oldValue, newValue);
        }
    }
    @Override public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
    @Override public void repaint(long tm, int x, int y, int width, int height) {}
    @Override public void repaint(Rectangle r) {}
    @Override public void repaint() {}
    @Override public void invalidate() {}
    @Override public void validate() {}
    @Override public void revalidate() {}
    //<---- Overridden for performance reasons.
}

2013年5月13日月曜日

【WordPress】カスタマイズの初歩

WordPressを始めたてみたが、テーマを自分の思うようにカスタマイズしたい!

とは、誰でも思うと思いますが、その手掛かりに中々たどり着かない?
解っている人には簡単なことでも、そのきっかけが難関だったりします。

HTMLの記述や、CSSのサイトは多くあるので、変更したい箇所を調べる方法について記載します。


■一番簡単かと思うのは、WEBブラウザで、変更したい箇所を確認する事です。


fierfoxを使用してfierbugで確認した場合、以下のようにクリックした箇所のHTMLとCSSの表示が出来ます。
また、ブラウザ上で変更をテストする事も可能です。

【Firebug使用時のサンプル画面】



1)Firefoxをインストールする
http://www.mozilla.jp/firefox/

2)Firebugをインストールする
https://getfirebug.com/

3)Firefoxを起動し、サイトを表示する

4)Firefoxの右上にある虫マークをクリックする
  →下部にTHMLを表示するエリアが表示されます

5)①矢印をクリックします。

6)サイト内のHTMLの知りたい箇所②をクリックします

7)【Firebug使用時のサンプル画面】にあるように、HTMLやCSSの箇所が表示されます

 この画面上で直接変更して確認もできます。

例)color#333333;
  でカラーを変更するには「#333333;」の部分をクリックして、#fff;」等に変更する

※カラーコードはこちらを参照下さい。

--------------------------------------------------------------
■おまけ

CSSで定義されている場合、指定されているTHMLのクラスやIDを知りたい場合も
同様の手順でHTML表示で確認出来ます。

PHPなどプログラミングされているソースは変更したい箇所を探すのも大変ですが、
IDなどでキーワードが解れば検索もしやすいと思います。