[Armadillo:05374] Re: Armadillo-9 Javaで日本語が表示できない

sugitani email@hidden
2010年 6月 28日 (月) 15:49:36 JST


杉谷です。

> X上ってことは、GUIですよね? AWTですか Swingですか?
AWTを使用しています。

> swingで直接文字を入れる場合は、↓な感じですか?
> 
> > import javax.swing.*;
> >  
> > import javax.swing.JFrame;
> > import javax.swing.JLabel;
> > 
> > public class HelloWorldSwing {
> >     public static void main(String[] args) {
> > 	JFrame frame = new JFrame("みなさん、こんにちは");
> > 	final JLabel label = new JLabel("みなさん、こんにちは");
> > 	frame.getContentPane().add(label);
> > 	
> > 	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> > 	frame.pack();
> > 	frame.setVisible(true);
> >     }
> > }
こちらで↑のプログラムを実行したところ、
フレームは表示されず、ラベルは「□」が表示されました。

今、お試しで作っているソースを↓に貼っておきます。
内容としては、フレームにテキストエリアを貼り付けて、そこにファイルから読
み出したテキストを表示させるというものです。
import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.Timer;

public class PrefFrame extends Frame {
	/**
	 * 
	 */
	TextArea b1;
	private static final long serialVersionUID = -6495168486552947488L;
	public static void main(String [] args) {
		new PrefFrame();
	}
	public PrefFrame() {
		super("日本語test");
		setLocation(300, 200);
		setSize(250, 350);
		setLayout(new FlowLayout());
		setBackground(Color.white);
		b1 = new TextArea(10, 20);
		
		Timer t = new Timer();
		t.schedule(new MyTimer(),0,10000);
		
		// 例外が起こりそうな記述
		try {
			// ファイルを開く
            FileReader in = new FileReader("test.txt");
			
			// データを最後まで読み込む
			int c;
			while ((c = in.read()) != -1) {
				// 文字型に変換して出力
				b1.append(String.valueOf((char)c));
			}
			// ファイルを閉じる
			in.close();
			
		} catch(Exception ex) {
			// 以下、例外処理の記述
			System.out.println("ファイルがありません。");
		}
		add(b1);
		setVisible(true);
	}
	
	class MyTimer extends TimerTask {
		public void run(){
			// 例外が起こりそうな記述
			try {
				// ファイルを開く
	            FileReader in = new FileReader("test.txt");
				
				// データを最後まで読み込む
				int c;
				while ((c = in.read()) != -1) {
					// 文字型に変換して出力
					b1.append(String.valueOf((char)c));
				}
				// ファイルを閉じる
				in.close();
				
			} catch(Exception ex) {
				// 以下、例外処理の記述
				System.out.println("ファイルがありません。");
			}
		}
	}
}


以上、よろしくお願いします。

On Mon, 28 Jun 2010 15:08:46 +0900
Yasushi SHOJI <email@hidden> wrote:

> At Fri, 25 Jun 2010 16:35:45 +0900,
> sugitani wrote:
> > 
> > Armadillo-9にて、X上でJavaで画面を作成し日本語を表示したいのですが、文字
> > 化けしてしまい、うまく表示されません。
> > 現状、xtermおよびWindow Maker Preferencesには正常に日本語が表示されています。
> 
> X上ってことは、GUIですよね? AWTですか Swingですか?
> 
> swingで直接文字を入れる場合は、↓な感じですか?
> 
> > import javax.swing.*;
> >  
> > import javax.swing.JFrame;
> > import javax.swing.JLabel;
> > 
> > public class HelloWorldSwing {
> >     public static void main(String[] args) {
> > 	JFrame frame = new JFrame("みなさん、こんにちは");
> > 	final JLabel label = new JLabel("みなさん、こんにちは");
> > 	frame.getContentPane().add(label);
> > 	
> > 	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> > 	frame.pack();
> > 	frame.setVisible(true);
> >     }
> > }
> -- 
>            yashi
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo

+-------------------------------------------+
 日東通信機株式会社
 技術部 第一グループ

 杉谷 昌彦(sugitani masahiko)

 〒158-0098
 東京都世田谷区上用賀5丁目12番11号
 TEL   :03-3708-6300
 E-Mail:email@hidden





armadillo メーリングリストの案内