GUI * JTreeの内容をアップデートする * SwingのLookAndFeelを切り替える * JButtonに画像をつける * レイアウトを設定するには * メッセージダイアログボックスを表示する * メニューを利用するには * Swingコンポーネントの周りにスペースをつくるには * JLabelの文字の色を変えるには * メニューにショートカットキーを設定するには * JTreeのルートノードの開閉アイコンを表示 * ActionEventでどのイベントが発生したかを処理するには System * Javaから他のプログラムを起動するには Java Basic * コンストラクタのオーバーロード * クラス名、変数名、関数名に日本語を使用する * JavaBeanをつくるには * 要素をSortするには * Windowsで実行可能なjarファイルを作成するには * オブジェクトの生成を減らしてパフォーマンスをあげる * クラスの型を調べるには * Docletを作成するには * Docletを実行するには * クラスの名前文字列からクラスのインスタンスを作成するには * タイプセーフなenum型を使用するには Applet * Appletの制限は * Appletのロード時間を短くするには 文字列 * 数値を文字列に変換する * 文字列を数値に変換する * 文字列が数字かどうか調べるには * StringBufferとString * 2つのString文字列が同じかどうかを調べるには * 数字の入ったStringを出力するときに気をつけることは? * エスケープ文字を変換するには * 文字列配列を初期化するには * 一行ずつ読み込む * Vectorから文字列配列に変換するには JDBC * JDBCを利用してMySQLに接続するには Servlet * HelloWorldを表示するには File * ディレクトリを作るには * Fileの拡張子を得るには * ディレクトリかどうかを調べるには * Fileの拡張子抜きの名前を得る * ファイルの移動を行うには GUIJTreeの内容をアップデートするJTreeの内容をアップデートするには、TreeModelのreload()を使用します。 reloadと同時にツリーの表示も更新されます。 その後、scrollPathToVisible()で新しいノードを表示します。
// Initialize SwingのLookAndFeelを切り替えるSwingのLookAndFeelを切り替えるには、setLookAndFeel()を使用します。 設定できる値は、 - com.sun.java.swing.plaf.metal.MetalLookAndFeel - com.sun.java.swing.plaf.windows.WindowsLookAndFeel - com.sun.java.swing.plaf.motif.MotifLookAndFeel などです。
JFrame application = new JFrame(); JButtonに画像をつけるJButtonに画像をつけるには、ImageIconを使用します。
ImageIcon icon = new ImageIcon("icon.jpg"); レイアウトを設定するにはレイアウトを設定するには、setLayout()を使用します。 デフォルトはBorderLayoutですが、その他に、 BoxLayout(縦に並べる), FlowLayout(横に並べる), GridBagLayout(複雑なレイアウトを実現する)などを選択することができます。
JPanel panel = new JPanel(); メッセージダイアログボックスを表示する単純なメッセージダイアログボックスを表示するには、JOptionPane.showMessageDialog()を使用します。
JOptionPane.showMessageDialog(pane, "Dialog Message", "Dialog Title", JOptionPane.PLAIN_MESSAGE); メニューを利用するにはメニューバーを追加するには、JMenuBar, JMenu, JMenuItemを使用します。 JMenuBarがメニューバー全体、JMenuがメニューバーに表示されるメニュー、JMenuItemがそれぞれのメニューを押したときに、表示される一つ一つのメニューアイテムになります。 この例では、ActionListenerを使って、JMenuItemが押されたときの、イベント処理も実装しています。 File - Menu1 を選択すると、ダイアログボックスが表示され、メッセージが表示されます。
public class Test extends JFrame implements ActionListener Swingコンポーネントの周りにスペースをつくるにはSwingコンポーネントの周りにスペースをつくるには、setBorder()を使用します。 setBorder()の引数として使用する、BorderはBorderFactryで作成します。 ただのスペースの場合は以下の例のようにcreateEmptyBorder()を使用し、マージンの幅を指定します。
JPanel panel = new JPanel(); JLabelの文字の色を変えるにはJLabelの文字の色を変えるには、setForeground()を使用します。 引数には、Colorを入力します。
JLabel label = new JLabel("Hello"); メニューにショートカットキーを設定するにはメニューにショートカットキーを設定するには、JMenuItemのsetAccelerator()を使用します。 以下の例では、ショートカットキーにALT+1を割り当てています。
JMenuItem menuItem = new JMenuItem("Push Here"); JTreeのルートノードの開閉アイコンを表示通常、同じレベルに複数の親アイテムがないと開閉アイコンが表示されませんが、setShowsRootHandles()を使用すると表示されるようになります。
JTree root = new DefaultMutableTreeNode("FAQ"); ActionEventでどのイベントが発生したかを処理するにはActionListenerのactionPerformedメソッドが、ActionEventを引数にとりますが、どのUser Interfaceからのイベント通知かを知る必要があります。 そのためには、getActionCommandメソッドを使用します。
public void actionPerformed(ActionEvent event) SystemJavaから他のプログラムを起動するにはWindwos上でJavaからexeファイルやbatファイルを起動するには以下のようにします。 pathToAppがStringで実行する外部アプリケーションのPathが入っていると仮定します。 もし、プロセスが終了するまで待ちたい場合は、waitForを使用します。
// declaration Java Basicコンストラクタのオーバーロードコンストラクタのオーバーロードをするには、引数の違うコンストラクタを定義します。 この際に、ひとつのコンストラクタから別のコンストラクタを呼び出したい場合は、this()を使用します。
class HellowWorld クラス名、変数名、関数名に日本語を使用するJavaでは、クラス名、変数名、関数名に日本語を使用しても動きます。
public class 日本語 JavaBeanをつくるにはJavaBeanはデータをやり取りするためのコンポーネントとして利用される、Java標準の形式です。 基本的には、次の4点を備えていることが条件です。 1.Serializableインターフェースを実装していること 2.引数のないコンストラクタを備えていること これは、コンストラクタを定義にない場合は、自動的に生成されます。 3.メンバ変数はすべてprivateとし、アクセスするために、Getter, Setterのメソッドを実装していること。 以下の例にあるように、メンバ変数(例ではnumber)をprivateにし、アクセスするための関数として、getNumberとsetNumberを定義します。メソッドの名前はこのように、get + 変数名、set + 変数名である必要があります。 3.JavaBeanのフラグがたっていること。具体的には、Jarファイル化するときにマニフェストファイルで指定します。 例: Java-Bean: True
import java.io.*; 要素をSortするにはCollectionsクラスのsortメソッドを使用すると、要素をソートすることができます。 Vector内のObjectがComparable interfaceを実装しているときは、簡単にソートできる。
import java.util.*; Windowsで実行可能なjarファイルを作成するには1. Manifest-Fileを作成します。これは、単なるテキストファイルです。 一行、 Main-Class: MainClass のように、メインのクラスを書きます。 :とクラス名の間には、半角スペース、最後は改行をすることを注意してください。 2. Manifest.mfというファイル名でセーブします。 3. 以下のコマンドを実行します。
> jar cvmf Manifest.mf MyApplication.jar *.class オブジェクトの生成を減らしてパフォーマンスをあげるJavaの基本的な知識ですが、Javaでの一番のコストはたいていの場合オブジェクトの作成です。 以下のコードでは、fastのほうがslowの約2倍の速度で動作します。 どちらもIntegerのインスタンスを作成していますが、fastのほうはStringオブジェクトを再利用しています。 これに対してslowは毎回Stringオブジェクトを作成しているので、そのコスト分時間がかかっています。
public class NewTest クラスの型を調べるにはJavaにはClass型というクラスがあります。 これを利用することで、実行時にクラスの型をしらべることが可能です。 以下の例では、
class MyClass Docletを作成するにはDocletはJavadoc toolを使って、Javaのソースコードのコメントを処理するためのプログラムです。 Javadoc toolではJava APIドキュメントを得ることができますが、Docletを使用することで自分の自由にコメントの処理を作ることが出来ます。 以下の例では、getTargetMethodメソッドが@mycommentというコメントのつけられたメソッド名の一覧を返します。 コンパイルには、j2sdkのlib\tools.jarをクラスパスに指定する必要があります。
import java.util.Vector; Docletを実行するにはDocletを実行するには、コマンドラインからJavadocのオプションとして指定する方法もありますが、ここではJavaプログラム内からDocletを実行する方法を紹介します。 com.sun.tools.javadoc.Main.executeメソッドを使用します。この方法はJ2SE ver.1.4以降で有効です。
public class ExtractClientMethods クラスの名前文字列からクラスのインスタンスを作成するにはJavaにはリフレクションという機能があり、クラスの名前やメソッド名などを変数として扱うことができます。 クラスの名前文字列からクラスのインスタンスを作成するには、ClassクラスのforNameとnewInstanceメソッドを使用します。 これによって、どのクラスを作成するかを実行時に決めることが可能になります。 このような考えかたの応用にDI(Dependency Injection)があります。
Class myClass = Class.forName("MyClass"); タイプセーフなenum型を使用するにはJavaにはenum型がありません。特殊なルールにしたがってクラスを作成することで、タイプセーフなenumを作成することができます。 JavaSE 5.0からは、タイプセーフenumが言語サポートされました。
//タイプセーフ enum AppletAppletの制限はAppletの主な制限は3つあります。 一つは、クライアントサイドのファイルの読み書きができないこと。 次に、ダウンロードした元のホスト以外とのネットワークコネクションができないこと。 最後に、Appletはクライアントの他のプログラムへのアクセスが制限されています。 いずれも、Appletがクライアントや他のコンピュータのデータに勝手にアクセスできないよう、セキュリティを考慮した設計になっているためです。 これをsandboxモデルと呼んでいます。 限られた範囲の権限内で、実行するためです。 そのため、Appletは非常にセキュリティの高い、安心して使えるブラウザ上のソフトウェアとなっています。 Appletのロード時間を短くするにはAppletのロード時間を短くするには、classファイルをjarファイルすることで実現できます。 Jarファイルは圧縮されているため、普通にclassファイルをダウンロードしてくるより、半分くらいの容量ですみます。 Jar化するには、通常通りコマンドラインから、 jar cf HelloApplet.jar HelloApplet.class のようにします。 htmlからjar化されたAppletを実行するには、以下のようにarchive属性を指定します。 文字列数値を文字列に変換する数値を文字列に変換するにはtoString()を使用します。
String s = Integer(100).toString(); 文字列を数値に変換する文字列を数値に変換するには、ラッパークラスを使用します。 Javaのラッパークラスには、Byte, Integer, Short, Long, Float, Doubleがあります。
String s = "100"; 文字列が数字かどうか調べるには文字列が数字かどうかしらべるには、IntegerクラスのparseInt()を使用します。
String input = "12345" StringBufferとStringJavaには、文字列を扱う基本的なクラスにStringとStringBufferがあります。 Stringは固定長、StringBufferは可変長の文字列を扱うようにできています。 主な違いは、文字列をどんどん追加していくようなときは、StringBufferを使ったほうが、Stringを使うよりもはるかに高速に処理できます。 たとえば、文字列を追加していくには、StringBuffer.append(String string)を使用します。
String result = ""; 2つのString文字列が同じかどうかを調べるにはJavaの初心者のよくやってしまう間違いのひとつに、String文字列の比較があります。 Stringの文字列が同じかどうかを比較するときは、==ではなく、equals()を使用します。 ==は「オブジェクト」が同じかどうかを比較するもので、「オブジェクトの中身」が同じかどうかを調べるものではありません 文字列の比較をする時、ほとんどの場合==では正しい結果を返しません。
String a = new String("hello"); 数字の入ったStringを出力するときに気をつけることは?以下の例での二つの出力が異なることに注意しましょう。
System.out.println(2 + 2 + "=result"); エスケープ文字を変換するにはstringのエスケープ文字をstringをプリントしたときにエスケープ文字になるように変換するコードです。 コードからコードを出力するときなどに使えます。
public class StringConverter 文字列配列を初期化するには文字列配列を初期化するには、いくつかの方法がありますが、結構良く使われるだろう初期化の方法を以下に紹介します。
final public String[] cars = {"Toyota","Nissan","Honda", "Ford", "Dodge", "BMW"}; 一行ずつ読み込むStringReaderとBufferedReaderを使うと、テキストを一行づつ読むことができます。
BufferedReader reader = new BufferedReader(new StringReader(input)); Vectorから文字列配列に変換するにはVectorから文字列配列String[]に変換するには、copyInto()メソッドを使用します。
String[] strings = new String[vector.size()]; JDBCJDBCを利用してMySQLに接続するには1. MySQLをセットアップします。 2. MySQL JDBC Driverを取得します。 3. .jarファイルにclasspathを通します。 4. 以下のようにコードを書き実行します。 日本語をShift-JISで扱うには、別にcharactor-set = Shift-JISを設定してやる必要があります。
// Sample application for JDBC connection to MySql import ServletHelloWorldを表示するにはServletをTomcatで実行する基本的な手順です。 Windows上での操作を想定しています。 1. JDKをインストールします。2003/12現在で1.4.2が最新です。 2. 環境変数JAVA_HOMEを設定します。通常の値は、c:\j2sdk1.4.2です。 3. Tomcatをインストールします。2003/12現在で5.0が最新です。 4. 環境変数TOMCAT_HOMEを設定します。値はC:\Program Files\Apache Software Foundation\Tomcat 5.0です。 5. 環境変数CLASSPATHを設定します。値にTomcatの%TOMCAT_HOME%\common\lib\servlet-api.jarが設定されていることを確認して下さい。 6. 環境変数PATHを設定します。値にC:\j2sdk\bin 7. 以下のJavaプログラムを作成。ファイル名はHelloWorldServlet.javaにしてください。作成したHelloWorldServlet.classファイルは後で使います。 8. コマンドラインからjavac HelloWorldServlet.javaとタイプしてコンパイルします。うまくコンパイルできない場合はCLASSPATHをチェックしてください。 9. Tomcatのwebappsフォルダの下にHelloWorldServletというフォルダを作成します。 10. HelloWorldServletフォルダの下にWEB-INFというフォルダを作ります。 11. web.xmlを以下のように作成し、WEB-INFのなかにおきます。 12. WEB-INFフォルダの下にclassesフォルダとlibフォルダを作ります。 13. コンパイルしてできたHelloWorldServlet.classファイルをTomcatの\HelloWorldServlet\WEB-INF\classesの下にコピーします。 14. Tomcatを再起動して設定を有効にします。 15. ブラウザからhttp://localhost:8081/HelloWorldServlet/HelloWorldServletへアクセスします。HelloWorld Servlet!と無事表示されるはずです。
// HelloWorldServlet.java Fileディレクトリを作るにはディレクトリを作るには、File.mkdir()を使用します。
import java.io.*; Fileの拡張子を得るにはFileの拡張子を得るには、次のようなメソッドを利用します。 拡張子が.javaの場合はjavaを返します。
public String getExtension(File file) ディレクトリかどうかを調べるにはディレクトリかどうかを調べるにはisDirectory()メソッドを使用します。
File file = new File("C:\Windows"); // Directory Fileの拡張子抜きの名前を得るFileの拡張子抜きの名前を得るには、次のようなメソッドを使用します。
public String getNameWithoutExtension(File file) ファイルの移動を行うにはファイルの移動はFileクラスのrenameToを使って行います。
java.io.File file = new java.io.File( "c:\\abc.txt" ); // 移動元 |
2007年1月23日火曜日
Java Tips
登録:
コメントの投稿 (Atom)
1 件のコメント:
java编程中的斐波纳契数
Computing Fibonacci numbers
コメントを投稿