###前提・実現したいこと
ここに質問したいことを詳細に書いてください
サンプルプログラムの抜粋です。
印刷機能部分です。
書籍では解説が端折られているため、理解するのに困っています。
StringTokenizer の使い方やwhile 文前後が何をやっているか分かりません。
何をどうやって印刷しているか、理解できません。
linecount の使われ方や条件文などの使われ方を日本語で解説して欲しいです。
linecount が 0や 50だった場合や他の場合、どうやって処理しているかを、
流れを日本語で解説して欲しいです。
どのように処理が流れているかを解説して頂けませんか?
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
java
1 } 2 else if (label.equals("Print")) { 3 // PrintJobのオブジェクト作成 4 PrintJob printJob = 5 getToolkit( ).getPrintJob(this, "Printing Text", null); 6 if (printJob == null) 7 return; 8 Graphics printGraphics = null; 9 setSize(width, height); // フレームサイズ設定 10 textarea.setSize(width, height); // 印刷サイズ設定 11 // テキストエリヤのテキスト取得 12 String sentence = textarea.getText( ); 13 String delimiter = "\n"; // 区切り文字取得 14 StringTokenizer st = new StringTokenizer(sentence, delimiter); 15 int linecount = 0; // 行カウント0クリア 16 while (st.hasMoreTokens( )) { 17 if (linecount % 50 == 0) { 18 if (linecount > 0) { 19 textarea.printAll(printGraphics); // 印刷する 20 printGraphics.dispose( ); // 用紙を排出する 21 } 22 textarea.setText(""); // テキストエリヤクリア 23 // PrintJobのグラフィックコンテキスト取得 24 printGraphics = printJob.getGraphics( ); 25 } 26 String s = st.nextToken( ); // 1行取り出し 27 linecount++; // 行をカウントアップ 28 String number = "000" + String.valueOf(linecount); 29 // 行番号を3桁に編集 30 String linenumber = number.substring(number.length( ) - 3); 31 // 行番号,1行文のデータと区切り 32 textarea.append(linenumber + "|" + s + delimiter); 33 } 34 textarea.printAll(printGraphics); // 印刷する 35 printGraphics.dispose( ); // 用紙を排出する 36 printJob.end( ); // 印刷終了 37 textarea.setText(sentence); // 文章を元に戻す 38 }
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/03 01:46