マルチメディアコンピューティングU

第4章:文字の入出力

4.1 概説

Javaの文字入出力には3種類の方法がある.

これらの関数で直接入出力できるのは文字列だけである.数値を扱うためには文字列との変換が必要である.

4.2 標準出力に書き出す

4.3 アプレットの画面に表示する

サンプル1. いろんなフォント

import java.applet.*;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;

public class moji2 extends Applet
{
        public void paint(Graphics g)
        {
                g.setColor(Color.red);
                Font f=new Font("Courier", Font.BOLD, 60);
                g.setFont(f);
                g.drawString("JAVA", 10,100);
                f=new Font("TimesRoman", Font.ITALIC, 60);
                g.setFont(f);
                g.drawString("JAVA", 10,150);
                f=new Font("Serif", Font.PLAIN, 60);
                g.setFont(f);
                g.drawString("JAVA", 10,200);
                f=new Font("Monospaced", Font.PLAIN, 60);
                g.setFont(f);
                g.drawString("JAVA", 10,250);
                f=new Font("Dialog", Font.ITALIC+Font.BOLD, 60);
                g.setFont(f);
                g.drawString("JAVA", 10,300);
                f=new Font("DialogInput", Font.PLAIN, 60);
                g.setFont(f);
                g.drawString("JAVA", 10,350);
                g.drawString("JAVA", 10,400);
                g.drawString("JAVA", 10+1,400+1);
                g.drawString("JAVA", 10-1,400-1);
                g.drawString("ジャバ", 10,450);
        }
}

4.4 文字窓に表示する

文字窓を表示するには

通常の文字列にはLabelオブジェクトを用いる.

サンプル2. オブジェクトのレイアウト

import java.applet.*;
import java.awt.*;

public class BoxIO extends Applet
{
        private TextField box1 = new TextField(4);
        private TextField box2 = new TextField(12);
        private TextField box3 = new TextField(8);

        public void init()
        {
                setLayout(null);
                box1.setBounds(20,20,40,20);
                add(box1);
                box2.setBounds(60,20,40,20);
                add(box2);
                box3.setBounds(100,20,40,20);
                add(box3);
        }

        public void paint(Graphics g)
        {
                box1.setText("急行");
                box2.setText("池袋行");
                box3.setText("10両編成");
        }
}

4.5 記入窓からデータを取り込む

4.6 標準入力からの読み込み

Javaアプレットからは利用できない.

付録1.時間の扱い

import java.applet.*;
import java.awt.*;
import java.util.*;

public class TimeDisp extends Applet {
        public void paint(Graphics g) {
                String Weeks[ ] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
                Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("JST"));

                int Year = cal.get(Calendar.YEAR);
                int Month = cal.get(Calendar.MONTH) + 1;
                int Day = cal.get(Calendar.DAY_OF_MONTH);

                String Week = Weeks[cal.get(Calendar.DAY_OF_WEEK)-1];

                String AmPm;
                if(cal.get(Calendar.AM_PM)==Calendar.AM) AmPm = "AM"; else AmPm ="PM";

                int Hour = cal.get(Calendar.HOUR);
                int Minute = cal.get(Calendar.MINUTE);
                int Second = cal.get(Calendar.SECOND);

                String message = Year + "/" + Month + "/" + Day+ "(" + Week + ") " + Hour + ":" + Minute + ":" + Second + " " + AmPm;

                g.drawString(message, 10, 10);
        }
}

付録2.文字窓の配列

import java.applet.*;
import java.awt.*;

public class boxm extends Applet
{
        private TextField box[] = new TextField[3];

        public void init()
        {
                int i;

                setLayout(null);
                for(i=0;i<3;i++){
                        box[i] = new TextField(8);
                        box[i].setBounds(40*(i+1),20,40,20);
                        add(box[i]);
                }
        }

        public void paint(Graphics g)
        {
                box[0].setText("急行");
                box[1].setText("池袋行");
                box[2].setText("10両編成");
        }
}

付録3. 文字窓とグラフィックスの連携

import java.applet.*;
import java.awt.event.*;
import java.awt.*;

public class interupt extends Applet implements ActionListener
{
        private TextField box = new TextField(8);
        private Button ok = new Button("OK");

        String s = "start";

        public void init()
        {
                add(box);
                add(ok);
                ok.addActionListener(this);
        }

        public void actionPerformed(ActionEvent e)
        {
                s=box.getText();
                repaint();      
        }

        public void paint(Graphics g)
        {
                g.drawString(s,10,10);
        }
}

付録4.文字列の比較

import java.applet.Applet;
import java.awt.*;

public class stringEqual extends Applet {
   String str1 = "abc";
   String str2 = "bcd";

   public void paint( Graphics g ){
        if(str1.compareTo(str2)==0) {
                g.drawString( "equal", 10, 10 );
        }
        else {
                g.drawString( "not equal", 10, 10 );
        }
   }
}

2003.11.13