2006年07月22日
噁心的怨念...
最近開始Po一些噁心無聊的東西...(見學習手記分類Orz),大概也沒什麼人會想看吧囧,不過...還是要怨念一下...
那個天殺該死的作業二做完了是做完了,可是留下的遺憾多到數不清...本來我想要耍帥的保持JPanel的paintComponent裡面乾乾淨淨沒有任何的loop,只單純的寫繪圖語法搭配if控制,但是不行!這樣做的後果是如果我的程式裡有多次顏色設定(例如原始範例有f,red 又有f,black),那畫圖出來只會用最後一個顏色去繪製...這樣玩屁阿= =++,這個問題到底在哪讓我找了好幾天,找到嫩冰雷都升81了(毆)
那問題到底在哪咧,問題就在於JPanel會在你切畫面、切換focus時自動去repaint,這樣的話我的程式就會...用我新設定的顏色再畫一次...阿咧咧咧咧,整個是做白工。所以最後,我還是含著眼淚,在paintComponent裡面寫下了錯縱複雜的while loop....
while ( dealer.hasNext() )
{
String Command = dealer.getCommand();
if ( Command.equals( "L" ) )
{
g.drawLine( dealer.Lx1, dealer.Ly1, dealer.Lx2, dealer.Ly2 );
}
if ( Command.equals( "d" ) )
{
g.drawLine( dealer.dx1, dealer.dy1, dealer.dx2, dealer.dy2 );
g.drawLine( dealer.dx2, dealer.dy2, dealer.dx3, dealer.dy3 );
g.drawLine( dealer.dx1, dealer.dy1, dealer.dx3, dealer.dy3 );
}
if ( Command.equals( "R" ) )
{
g.drawRect( dealer.Rx1, dealer.Ry1, dealer.Rx2, dealer.Ry2 );
}
if ( Command.equals( "C" ) )
{
g.drawOval( dealer.Cx1, dealer.Cy1, dealer.Cr, dealer.Cr );
}
if ( Command.equals( "f" ) )
{
g.setColor( dealer.fColor );
}
if ( Command.equals( "T" ) )
{
g.drawString( dealer.Ttext, dealer.Tx1, dealer.Ty1 );
}
if ( Command.equals( "P" ) )
{
ImageIcon image = new ImageIcon( dealer.gifName );
image.paintIcon( this, g, dealer.Px1, dealer.Py1 );
}
}
沒有dealer的程式碼,你也看不懂啦啦啦(討打)
嗯,來去寫程式設計歷程- -