?? ballframe.java
字號:
package day03.table_ball;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 顯示整個界面的frame
*
* @author Administrator
*
*/
public class BallFrame extends JFrame{
private BallPanel panel;//顯示小球的panel
public static final int WIDTH = 800;
public static final int HEIGHT = 500;
//所有可供選擇的小球顏色
private Color[] colors = {Color.blue, Color.magenta, Color.orange, Color.red, Color.yellow, Color.pink,Color.green};
public static int counter;
private JButton start,close;//開始按鈕和關閉按鈕
private Map<Ball,Thread> threads=new HashMap<Ball, Thread>();
public static JLabel labQiu,labShow;
public BallFrame(){
panel = new BallPanel();//創(chuàng)建顯示小球的面板
start=new JButton("Start");
close=new JButton("Close");
labQiu=new JLabel();
labShow=new JLabel();
this.add(panel, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel();
buttonPanel.add(labQiu);
buttonPanel.add(start);
buttonPanel.add(close);
buttonPanel.add(labShow);
this.add(buttonPanel, BorderLayout.SOUTH);
}
/**
* 給按鈕添加事件監(jiān)聽
*
*/
public void addEventHandler(){
start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
addBall(650,185,panel,Color.black,"0");
counter++;
panel.repaint();
int txt=1;
for(int i=5;i>0;i--){
for(int j=0;j<i;j++){
addBall(120+(4-i)*25,150+j*25+(4-i)*12,panel,Color.red,txt+""); //生成一個小球,隨機選擇一種顏色
counter++;
panel.repaint();
txt++;
}
}
}
});
close.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}
});
}
public void showMe(){
addEventHandler();
setSize(WIDTH, HEIGHT);
setTitle("Ball Game");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* 該方法控制向面板中添加一個小球
*
*/
public void addBall(int x,int y,BallPanel panel,Color c,String txt) {
Ball b = new Ball(x,y,panel,c,txt); //生成一個小球,隨機選擇一種顏色
//將小球加到面板中
panel.addBall(b);
//新建一個線程來控制小球
BallThread thread = new BallThread(b);
thread.start();
threads.put(b, thread);
}
public static void main(String[] args) {
new BallFrame().showMe();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -