AWT/BorderLayout
add(p2,BorderLayout.CENTER);
ボーダレイアウトは、 上部、下部、右端、左端、中央
という 5 つの領域に収まるように、
コンポーネントを整列およびサイズ変更して、
コンテナに配置します。
//p2はパネルのインスタンス
add(p2,BorderLayout.NORTH);
add(p2,BorderLayout.SOUTH);
add(p2,BorderLayout.EAST);
add(p2,BorderLayout.WEST);
add(p2,BorderLayout.CENTER);
TOPへ
AWT/Label作成
Label();
Label("abc");
Label("abc",CENTER);
Label("abc",LEFT);
Label("abc",RIGHT);
buf=L1.getText();
L1.setText("abc");
import java.awt.*;
import java.awt.event.*;
public class Ltest extends Frame
{
Label L1;
public Ltest () {
super();
setSize(200,300);
Panel p0 = new Panel();
L1=new Label("abc");
p0.add(L1);
add(p0,BorderLayout.CENTER);
}
public static void main(String args[]) {
Ltest f = new Ltest();
f.show();
}}
TOPへ
AWT/Windowのサイズ
//setSize(300,100);
//setSize(W,H);
import java.awt.*;
import java.awt.event.*;
public class BtnTest extends Frame
{
public BtnTest () {
super();
setSize(300,100);
}
public static void main(String args[]) {
BtnTest f = new BtnTest();
f.show();
}
}
TOPへ
AWT/Windowを閉じると終了
//WindowListenerというインターフェイスをimplementsする。
import java.awt.*;
import java.awt.event.*;
public class WindowTest extends Frame implements WindowListener{
public WindowTest(){
super();
addWindowListener(this);
}
public static void main(String[] args){
WindowTest f = new WindowTest();
f.show();
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
//ここですべてのイベントを書かないといけない。
public void windowOpened(WindowEvent e){}//開いた
public void windowClosed(WindowEvent e){}//閉じる瞬間
public void windowIconified(WindowEvent e){}//最小化
public void windowDeiconified(WindowEvent e){}//最小化からもどす
public void windowActivated(WindowEvent e){}//アクティブになったとき
public void windowDeactivated(WindowEvent e){}//非アクティブになったとき
}
TOPへ
AWT/Windowを閉じると終了2
//WindowListenerのアダプタクラスWindowAdapterを継承した
//インナークラスを作るともっとシンプルになる。
import java.awt.*;
import java.awt.event.*;
public class WindowTest extends Frame {
public WindowTest(){
super();
addWindowListener(new myWindowListener());//インスタンス
}
public static void main(String[] args){
WindowTest f = new WindowTest();
f.show();
}
//アダプタクラスを継承したクラスを作る。
class myWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}
TOPへ
AWT/button
String getLabel()
ボタンのラベルを返します。
public void actionPerformed(ActionEvent e) {
String buf;
Double D;
Button Bmoto = (Button)e.getSource();
if (Bmoto == bm) {
//Btn1();
} else {
buf=L1.getText();
buf=buf+Bmoto.getLabel();
///D=double.doubleValue(buf);
}
}
TOPへ
AWT/どのボタンが押されたか?
import java.awt.*;
import java.awt.event.*;
public class BtnTest extends Frame implements ActionListener
{
Button b1,b2;
public BtnTest () {
super();
setSize(300,100);
Panel p1 = new Panel();
b1 = new Button("BTN1");
b1.addActionListener(this);
p1.add(b1);
b2 = new Button("BTN2");
b2.addActionListener(this);
p1.add(b2);
add(p1,BorderLayout.CENTER);
}
public static void main(String args[]) {
BtnTest f = new BtnTest();
f.show();
}
//ここでボタンを調べる
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
//Btn1();
} else {
//Btn2();
}
}
}
TOPへ
AWT/ボタンとWindowを閉じると終了
import java.awt.*;
import java.awt.event.*;
public class BtnTest extends Frame implements ActionListener
{
Button b1,b2;
public BtnTest () {
super();
addWindowListener(new myWindowListener());//インスタンス
setSize(300,100);
Panel p1 = new Panel();
b1 = new Button("BTN1");
b1.addActionListener(this);
p1.add(b1);
b2 = new Button("BTN2");
b2.addActionListener(this);
p1.add(b2);
add(p1,BorderLayout.CENTER);
}
public static void main(String args[]) {
BtnTest f = new BtnTest();
f.show();
}
//ここでボタンを調べる
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
//Btn1();
} else {
//Btn2();
}
}
//アダプタクラスを継承したクラスを作る。
class myWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}
TOPへ
AWT/ボタンイベント
import java.awt.*;
import java.awt.event.*;
public class TestJavaApplication extends Frame implements ActionListener{
Label l1;
TextField t1;
Button b1;
public TestJavaApplication () {
super();
setSize(300,100);
setLayout(null);
l1 = new Label("please type number:");
l1.setBounds(50,30,200,20);
Font f1 = new Font("Dialog",Font.BOLD, 14);
l1.setFont(f1); add(l1);
t1 = new TextField("10");
t1.setBounds(50,60,200,20);
add(t1);
b1 = new Button("OK");
b1.setBounds(100,100,100,25);
add(b1);
b1.addActionListener(this);
}
public static void main(String args[]) {
TestJavaApplication f = new TestJavaApplication();
f.show();
}
public void actionPerformed(ActionEvent e) {
String s = t1.getText();
int n = Integer.parseInt(s);
int m = 0;
for (int i = 1; i <= n; i++)
m += i;
s = Integer.toString(m);
l1.setText("total: " + s);
}
}
TOPへ
AWT/任意の場所に配置
setLayout(null);でレイアウトマネージャをキャンセルする
それをすると全て手動で場所を設定しなくてはいけない。
Label l1=new Label("abc...");
l1.setSize(W,H);
l1.setLocation(X,Y);
l1.setBounds(X,Y,W,H);
import java.awt.*;
public class TEST extends Frame
{
Label l1;
public TEST () {
super();
setLayout(null);
l1 = new Label("hello!");
l1.setBounds(100,50,100,30);
add(l1);
}
public static void main(String args[]) {
TEST f = new TEST();
f.show();
}
}
TOPへ
Java独自/implements
implementsはextendsと違って
複数継承できる。ただしインターフェイスクラスだけ
implements A,B,C,....;
イベントリスナーはすべてインターフェイス
組み込んだインターフェイスクラスのメソッドは全て
実装しなくてはならないのでめんどう。
インターフェイスはextendsできない。
インターフェイスはそのままnewでインスタンスを作れない
必ず継承した新しいクラスを用意する
継承と一緒につかう場合extends AAA implements BBB,CCC;
TOPへ
Java独自/コマンドライン引数
/*コマンドライン(Dosプロンプトの画面)*/
/*Dosプロンプトで
java myClass 1 2
として実行すると1と2が引数args[]に入って送ります。
引数は2つ以上渡さないとエラーになる*/
class ArgmentsSample3{
public static void main(String args[]){
int count,i;
String arg_s;
count=args.length;
System.out.println("引数の数は"+count);
for(i=0;i<count;i++){
System.out.println("args["+i+"]="+args[i]);
}
System.out.println("+++++++++++++++++++++++++++++++++");
int arg_i=Integer.parseInt(args[0]);
double arg_d=Double.parseDouble(args[1]);
arg_s=args[2];
System.out.println("args[0] をintに変換 "+arg_i);
System.out.println("args[1] をdoubleに変換 "+arg_d);
System.out.println("args[2] は変換しない "+arg_s);
}
}
TOPへ
swing/Windowを閉じると終了させる
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class WinSample02 {
public static void main(String[] args) {
JFrame myFrame = new JFrame("初めてのウィンドウ");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウィンドウを閉じると終了する
myFrame.setSize(300,200);
myFrame.setVisible(true);
}
}
TOPへ
サンプル/たし算
class Test {
public static void main (String args []) {
int A,B;
A = 1;
B = 2;
int C = A + B;
System.out.println (" 1 + 2 = " + C);
}
}
TOPへ
基本クラス/Stringコンストラクタ
コンストラクタ
●String()
新しく生成された String オブジェクトを初期化して、空の文字シーケンスを表すようにします。
●String(byte[] bytes)
プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト配列を変換することによって新しい String を構築します。
●String(byte[] bytes,int offset,int length)
プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト列の部分配列を変換することによって、新しい String を構築します。
●String(byte[] bytes,int offset,int length,String enc)
指定された文字エンコーディングを使用して、指定されたバイト部分配列を変換することによって、新しい String を構築します。
●String(byte[] bytes,String enc)
指定された文字エンコーディングを使って、指定されたバイト配列の変換を行うことによって、新しい String を構築します。
●String(char[] value)
新しい String を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。
●String(char[] value,int offset,int count)
文字配列引数の部分配列からなる文字を含む新しい String を割り当てます。
●String(String value)
新しく生成された String オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。
●String(StringBuffer buffer)
StringBuffer 型の引数に現在含まれている文字列を持つ新しい文字列を構築します。
TOPへ
基本クラス/Stringメソッド
メソッド
● char=String.charAt(int index)
指定されたインデックス位置にある文字を返します。
● int=String.compareTo(Object o)
この String をほかの Object と比較します。
● int=String.compareTo(String anotherString)
2 つの文字列を辞書式に比較します。
● int=String.compareToIgnoreCase(String str)
大文字小文字の区別なしで、2 つの文字列を辞書式に比較します。
● String=String.concat(String str)
指定された文字列をこの文字列の最後に連結します。
●static String=String.copyValueOf(char[] data)
指定された文字配列と同一の String を返します。
●static String=String.copyValueOf(char[] data, int offset, int count)
指定された文字配列と同一の String を返します。
● boolean=String.endsWith(String suffix)
この文字列が、指定された接尾辞で終るかどうかを判定します。
● boolean=String.equals(Object anObject)
この文字列と指定されたオブジェクトを比較します。
● boolean=String.equalsIgnoreCase(String anotherString)
この String とほかの String を比較します。
● byte[]=String.getBytes()
String をプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。
● byte[]=String.getBytes(String enc)
String を指定された文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。
● void=String.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
この文字列から、コピー先の文字配列に文字をコピーします。
● int=String.hashCode()
この文字列のハッシュコードを返します。
● int=String.indexOf(int ch)
この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。
● int=String.indexOf(int ch, int fromIndex)
この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。
● int=String.indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。
● int=String.indexOf(String str, int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。
● String=String.intern()
文字列オブジェクトの正準表現を返します。
● int=String.lastIndexOf(int ch)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。
● int=String.lastIndexOf(int ch, int fromIndex)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します (検索は指定されたインデックスから開始され、先頭方向に行われる)。
● int=String.lastIndexOf(String str)
この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。
● int=String.lastIndexOf(String str, int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。
● int=String.length()
この文字列の長さを返します。
● boolean=String.regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len)
2 つの文字列領域が等しいかどうかを判定します。
● boolean=String.regionMatches(int toffset,String other,int ooffset,int len)
2 つの文字列領域が等しいかどうかを判定します。
● String=String.replace(char oldChar, char newChar)
この文字列内にあるすべての oldChar を newChar に置換した結果生成される、新しい文字列を返します。
● boolean=String.startsWith(String prefix)
この文字列が、指定された接頭辞で始まるかどうかを判定します。
● boolean=String.startsWith(String prefix, int toffset)
この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。
● String=String.substring(int beginIndex)
この文字列の部分文字列である新しい文字列を返します。
● String=String.substring(int beginIndex, int endIndex)
この文字列の部分文字列である新しい文字列を返します。
● char[]=String.toCharArray()
この文字列を新しい文字配列に変換します。
● String=String.toLowerCase()
Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を小文字に変換します。
● String=String.toLowerCase(Locale locale)
指定された Locale の規則を使用して、この String 内のすべての文字を小文字に変換します。
● String=String.toString()
このオブジェクト (すでに文字列である) 自身が返されます。
● String=String.toUpperCase()
Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を大文字に変換します。
● String=String.toUpperCase(Locale locale)
指定されたロケールの規則を使用して、この String 内のすべての文字を大文字に変換します。
● String=String.trim()
この文字列の両端から空白を除去します。
●static String=String.valueOf(boolean b)
boolean 引数の文字列表現を返します。
●static String=String.valueOf(char c)
char 引数の文字列表現を返します。
●static String=String.valueOf(char[] data)
char 配列引数の文字列表現を返します。
●static String=String.valueOf(char[] data, int offset, int count)
char 配列引数の特定の部分配列の文字列表現を返します。
●static String=String.valueOf(double d)
double 引数の文字列表現を返します。
●static String=String.valueOf(float f)
float 引数の文字列表現を返します。
●static String=String.valueOf(int i)
int 引数の文字列表現を返します。
●static String=String.valueOf(long l)
long 引数の文字列表現を返します。
●static String=String.valueOf(Object obj)
Object 引数の文字列表現を返します。
TOPへ
制御/for文
class Test3 {
public static void main (String args []) {
int A = 100;
int B = 0;
int i = 1;
for (i = 1; i <= A; i++) {
B = B + i;
}
System.out.println ("GOUKEI: " + B);
}
}
TOPへ
制御/if
★条件文−−その1★
if (《条件式》) {
……条件が正しいとき実行する命令……
}
★条件文−−その2★
if (《条件式》) {
……条件が正しいとき実行する命令……
}
else {
……正しくないとき実行する命令……
}
要するに、正しくないときは後に「else {…}」というのを付け足せばいいだけのことです。わかりやすいですね。
問題は、「条件式」の部分です。ここには、いわゆる「論理式」と呼ばれるものが入ります。「○○は××である」とか「○○は××より大きい」とかいうやつですね。これには、以下のようなものがあります。
○○ == ×× −−○○と××は等しい
○○ != ×× −−○○と××は等しくない
○○ < ×× −−○○は××より小さい
○○ <= ×× −−○○は××と等しいか小さい
○○ > ×× −−○○は××より大きい
○○ >= ×× −−○○は××と等しいか大きい
TOPへ
変換/Doubleにする
String型をDouble型にする
double double変数= Double.parseDouble ("123.456");
TOPへ
変数/double
double D;
17桁
double doubleValue()
int intValue() この Double の整数値を、int にキャストすることによって返します。
long longValue()
この Double の long 値を、long にキャストすることによって返します
short shortValue()
この Double の値を、short としてキャストすることによって、short として返します
String toString()
この Double オブジェクトの String 表現を返します。
staticString toString(doubled)
double 引数の文字列表現を作成します
TOPへ
変数/宣言
int A;
int A,B;
String A;
String A,B;
TOPへ