import java.awt.*; import java.awt.event.*; import javax.swing.*; public class NovelAdventureTestPanel extends JPanel implements ActionListener{ //Eclipseの場合、シリアライズ可能クラスでこれがないと警告が出る private static final long serialVersionUID=0; //文字順番表示アニメーションのタイマー Timer timer; // int speed,size; // int lineNow,lineAll; //シナリオの何行目か int charNow,charAll; //その行の何文字目か // public NovelAdventureTestPanel(){ //シナリオの行数と文字数で初期化 lineAll=scenario.length; lineNow=0; // charAll=scenario[lineNow].length(); charNow=0; } //設定変更(元アプレットから呼ばれる) public void setParam(int sp,int sz){ // speed=sp; size=sz; // charNow=0; //今の行の初めから表示開始 // timer=new Timer(speed,this); timer.start(); } //次の行へ(元アプレットから呼ばれる) public void goNext(){ if(charNow=lineAll){ lineNow=0; //最終行なら最初に戻る } // charAll=scenario[lineNow].length(); charNow=0; // timer=new Timer(speed,this); timer.start(); } } // public void paintComponent(Graphics g){ super.paintComponent(g); //指定サイズのフォントにする g.setFont(new Font(null,Font.PLAIN,size)); //文字の幅と改行の高さを求めるため必要 FontMetrics metrics=g.getFontMetrics(); //初期値 int margin=50; int px=margin; int py=margin+metrics.getHeight(); // for(int s=0;sgetWidth()-2*margin){ //右端に来たら改行 px=margin; py+=metrics.getHeight(); } } } //Timerで一定時間ごとに呼び出される public void actionPerformed(ActionEvent e){ charNow+=1; //1文字進める if(charNow>=charAll){ timer.stop(); //最後の文字まで来たらTimerをストップ } // repaint(); } //シナリオ String[] scenario=new String[]{ "『遥か彼方の白へ(仮)』試し書き", "「雪子、ひさしぶりー。思ったより元気そうじゃん。てっきり膝を抱えて塞ぎ込んでいるかと思った」", "「“雪子(ゆきこ)”じゃない、“優梨子(ゆりこ)”! 今は実家なんだからあんまり騒がないでよ」", "相変わらずの陽気さで、友恵は、荷物で散らかった部屋に入ってきた。直接会うのは会社を辞めて以来だ。3ヶ月ぶりになる。", "「いつまでも落ち込んでいられないしね、まあ、受け入れなくちゃ」", "「偉いねえ。優梨子、強くなった」", "「好きで強くなったんじゃないけどね」", "ため息交じりで吐き出す私にうんうんとうなづいて、友恵はにっこり笑った。", "「会社の連中も心配してたよ。明日出勤したら大丈夫そうだって伝えておくけど」", "「お願いします」", "知り合いに何と言われているか考えるとげっそりする。こういう話は尾ひれが付いて広まるのだ。", "狭いスペースで向かい合って座ると、友恵は真面目な顔になった。", "「職場復帰はしないの?」", "「いや、それは……」", "勘弁して欲しい、と本気で思う。結婚しますと退職した女が、婚約破棄となったのだ。", "「今更、戻れるわけないでしょう。本気?」", "「本気。意外と平気だと思うよ。最初はちょっと居辛いかもしれないけど、すぐ慣れるよ」", "「そんな気楽に……」", "「今、人が足りないしさ。それに、いつまでも実家にいるわけにいかないでしょ?」", "「……」", "当たっているだけに反論できない。実家も広いわけじゃない。来年春には弟夫婦に子供ができる。", "両親は何も言わないだろう。でも、アパートを引き払った荷物に囲まれて肩身狭く暮らすのは辛い。", "家族の気遣いが痛い。こういう辛さは当人にしか分からない。", "「そりゃそうだけど、私は……その、友恵とは、違うのよ」", "「うわ、何気に酷い言い草だなあ」", "大笑いした後、友恵は話題転換した。部屋の隅を見て、言った。", "「水墨画、再開したんだ」", "「まあね」", "―――続く", }; }