當前位置:編程學習大全網 - 源碼下載 - Java自學源代碼

Java自學源代碼

進口?Java . awt . *;

進口?Java . awt . event . *;

進口?Java . awt . geom . *;

進口?Java . util . *;

進口?javax . swing . *;

/**

*?多線程,小球演示。打開Windows任務管理器,您可以看到線程的變化。?可以搜索,運行()方法/。開始()

*?

*?杜:?程序技巧的體驗:?所謂生產壹個小球,也就是?新的?它的類對象,其屬性攜帶小球的畫法?坐標,顏色,容器?等參數。

*?

*?其屬性用作參數容器的類。方法...完成該功能。

*?*/

//?跑步課

公?班級?彈力抑郁癥?{

//

公?靜電?作廢?main(String[]?args)?{

JFrame?框架?=?新的?BouncePressFrame();?//?生成窗口。執行施工。-商業邏輯。

frame . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);?//?相似?到

//?窗戶

//?聽眾

frame . show();

}

}

班級?BouncePressFrame?延伸?JFrame?{

私人?棒球場?畫布;

公?BouncePressFrame()?{

setSize(600,?500);?//?窗口大小

setTitle("彈跳?球”);

集裝箱?contentPane?=?getContentPane();?//?Swing的窗口不能直接放東西,只能放在它的ContentPane上。

畫布?=?新的?ball press canvas();?//?生成新面板。-帆布

contentPane.add(canvas,BorderLayout。中心);?//?窗口中心?添加此面板。

JPanel?buttonPanel?=?新的?JPanel();?//?然後生成壹個新面板。-按鈕面板

//?調用此類方法addButton。

addButton(按鈕面板,?“開始”,?//?生成壹個按鈕"開始"--添加面板按鈕panel。

新的?ActionListener()?{?//?|-& gt;系扣子?動作監聽器。

公?作廢?actionPerformed(ActionEvent?evt)?{?//?|?球容器對象的對象

addBall(線程。NORM_PRIORITY?-?4,?Color .黑色);?//?處理事件時,執行- addBall()方法。-& gt;生成小球(參數對象)->;添加到列表->開始畫球。

}

});?//?按壹次,addBall()壹次->生成壹個新球->添加到列表->開始繪制這個新球。

//?-& gt;BallPressThread-> Ball(參數對象)的Run()。move ()->每次畫的時候,先動,再判斷,再畫。

//?-& gt;BallPressCanvas類的Canvas對象。paint()->;自動調整BallPressCanvas類的paintComponent(Graphics)。

//?g)方法。

//?-& gt;在這個方法中,所有的球,第I個球,從列表中循環取出,-->;調整棒球場。

//?。draw()方法->;通過調整Graphics2D方法繪制壹個球。-使用顏色/

addButton(按鈕面板,?“快遞”,?新的?ActionListener()?{

公?作廢?actionPerformed(ActionEvent?evt)?{

addBall(線程。NORM_PRIORITY?+?2,?color . red);

}

});

addButton(按鈕面板,?“關閉”,?新的?ActionListener()?{

公?作廢?actionPerformed(ActionEvent?evt)?{

system . exit(0);

}

});

contentPane.add(buttonPanel,BorderLayout。南);

}

公?作廢?addButton(容器?c,?字符串?標題,?ActionListener?聽眾)?{

JButton?按鈕?=?新的?JButton(標題);?//?生成壹個按鈕。

c.add(按鈕);?//?添加到容器中。

button.addActionListener(監聽器);?//?系扣子?動作監聽器。

}

/**?主要經營方式。?*/

公?作廢?addBall(int?優先,?顏色?顏色)?{

//?壹代?球(參數對象)

棒球場?b?=?新的?棒球場(畫布,顏色);?//?生成壹個BallPress對象,攜帶並初始化它。

//?畫壹個球形的球,所需參數:容器組件,所需顏色-黑色/紅色。

//?小球加入?在列表中。

canvas . add(b);?//?面板畫布?在數組列表裏?添加壹個棒球場對象。

圓珠筆線?線程?=?新的?滾珠壓力螺紋(b);?//?生成BallPressThread對象,壹個繪制球的線程類。傳入BallPress對象(它攜帶繪制球所需的信息。

//?容器,顏色參數)。

thread.setPriority(優先級);

thread . start();?//?打電話?run(),?球?開始?去哪?移動

//?球拉絲開始。-& gt;BallPressThread的run()->;球(參數對象)。move ()->先動,再畫。canvas . paint-& gt;棒球場畫布類

}

}

//?繪制球的線程類。

班級?圓珠筆線?延伸?線程?{

私人?棒球場?b;

公?BallPressThread(BallPress?aBall)?{

b?=?aBall

}

//?抽球開始。

公?作廢?run()?{

試試?{

為了什麽?(int?我?=?1;?我?& lt=?1000;?i++)?{?//?抽1000次。

b . move();?//?每次畫的時候,先動,再判斷,再畫。

睡眠(5);?//?所以比Bounce.java的球移動的慢。

}

}?接住?(中斷異常?e)?{

}

}

}

//?搖擺面板類。

//?函數1)?這種面板對象。paint()方法->;自動繪制面板,並自動調整paintComponent(圖形

//?g)方法,-->覆蓋此方法來繪制面板(及其組件)。

//?角色2)?這種對象?屬性數組列表?Balls -兼做小球(參數對象)的容器。

班級?棒球場?延伸?JPanel?{

私人?數組列表?蛋蛋?=?新的?ArrayList();

公?作廢?補充(棒球服?b)?{

balls . add(b);?//?向數組列表中添加壹個球。當您按下按鈕並添加多個球時,它們都保存在此列表中。

}

//?重寫?Javax.swing.JComponent的?PaintComponent()方法。

//?paint()方法自動調用這個方法。

公?作廢?paintComponent(圖形?g)?{

super . paint component(g);

Graphics2D?g2?=?(Graphics2D)?g;

為了什麽?(int?我?=?0;?我?& lt?balls . size();?i++)?{?//?傳播

棒球場?b?=?(棒球場)?balls . get(I);?//?從列表中取出第壹個球,

b . draw(G2);?//?畫這個球。

}

}

}

/**

*?畫壹個球。

*?

*?妳在線嗎?在畫布上畫壹個彩色的小球。

*?

*?屬性,該屬性可用於攜帶繪制球所需的參數。

*?

*?

*?

*?@作者?杜孔安

*?

*/

班級?棒球場?{

私人?組件?畫布;

私人?顏色?顏色;

私人?int?x?=?0;

私人?int?y?=?0;

私人?int?dx?=?2;

私人?int?dy?=?2;

//?結構?初始化?集裝箱?顏色?參數。

公?棒球場(組件?c,?顏色?aColor)?{

畫布?=?c;

顏色?=?aColor

}

//?擺好位置,抽球。

公?作廢?draw(Graphics2D?g2)?{

g2.setColor(顏色);

g2.fill(新?Ellipse2D。Double(x,y,?15,?15));?//?橢圓:卵形

}

//?移動球。

//?每次畫的時候,先動,再判斷,再畫。

//?每次執行這個方法,畫出球的起點坐標?(x,y),?每次+2,?也就是斜向右下方移動。

公?作廢?move()?{

x?+=?dx;?//?x = x+dx;?畫出球的起始坐標?(x,y),?每次+2,?也就是斜向右下方移動。

y?+=?dy;?//?y = y+dy;

如果?(x?& lt?0)?{?//?球到達了左邊界。答應,從左邊界開始畫。

x?=?0;

dx?=?-dx;?//?球的橫坐標的變化值反過來。開始反向運動。

}

如果?(x?+?15?& gt=?canvas.getWidth())?{?//?球的右側到達了畫板的右側。

x?=?canvas.getWidth()?-?15;

dx?=?-dx;?//?開始反向運動。

}

如果?(y?& lt?0)?{?//?承諾,從頂框開始。

y?=?0;

dy?=?-dy;

}

如果?(y?+?15?& gt=?canvas.getHeight())?{?//?球已經到達了繪圖板的頂部。

y?=?canvas.getHeight()?-?15;

dy?=?-dy;

}

canvas . paint(canvas . get graphics());?//?繪制面板對象畫布-(以及其上的所有組件)

//?//.paint()方法,自動調用。

}

}

/*導入?Java . awt . *;

進口?Java . awt . event . *;

進口?Java . awt . geom . *;

進口?Java . util . *;

進口?javax . swing . *;

*//**

*?單線程,小球演示?無法搜索,請運行()方法/。開始()

*//*

公?班級?彈跳?{

公?靜電?作廢?main(String[]?args)?{

JFrame?框架?=?新的?bounce frame();

frame . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);?//?相似?到

//?窗戶

//?聽眾

frame . show();

}

}

  • 上一篇:Android 的void android.view.Window.setFlags(int flags, int mask) 的兩個參數有啥意義
  • 下一篇:交流:殺毒軟件評價
  • copyright 2024編程學習大全網