📄 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();//创建显示小球的面板
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);
}
/**
* 给按钮添加事件监听
*
*/
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 + -