⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myredball.java

📁 JavaExample
💻 JAVA
字号:
//================== MyRedBall.java =====================
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyRedBall
extends JFrame implements ActionListener
  {
  Timer timer;
  private JPanel buttonPanel,labelPanel;
  private JLabel label=new JLabel("油滴");
  private JButton startCountBtn,pauseBtn,stopBtn,clearBtn,generateOilBtn;
  private JSlider slider;
  private Container c;
  private int d=15;
  private int x=450;
  private int y=-1;
  private int dx=2;
  private int dy=2;
  private int appWidth=0;
  private int appHeight=0;
  private int BallChangerX=-1,BallChangerY=-1;
  public MyRedBall()
    {
       super("密立根油滴实验模拟程序");
       
       buttonPanel=new JPanel();
       startCountBtn=new JButton("开始计数");
       pauseBtn=new JButton("计数暂停");
       stopBtn=new JButton("计数停止");
       clearBtn=new JButton("计数清零");
       generateOilBtn=new JButton("产生油滴");
       buttonPanel.setLayout(new GridLayout(5,1,10,10));
       slider = new JSlider(SwingConstants.HORIZONTAL,0,200,10);
       buttonPanel.add(generateOilBtn);
       buttonPanel.add(startCountBtn);
       buttonPanel.add(pauseBtn);
       buttonPanel.add(stopBtn);
       buttonPanel.add(clearBtn);
       
       labelPanel=new JPanel();
       labelPanel.add(label);
       label.setFont(new Font("Serif",Font.BOLD,32));
       
       
       c=getContentPane();
       c.setLayout(new BorderLayout(50,50));
   
       c.add(buttonPanel,BorderLayout.WEST);
       c.add(labelPanel,BorderLayout.CENTER);
       c.add(slider, BorderLayout.SOUTH);
 //      c.setLayout(new FlowLayout(FlowLayout.CENTER));
       setSize(700,500);
       show();
       appWidth=this.getSize().width;
       appHeight=this.getSize().height;
       setBackground(Color.yellow);
    }
  public void start()
    {
    timer = new Timer(100, this);
    timer.start();
    }
  public void actionPerformed(ActionEvent e)
    {
    repaint();
    }
  public void paint(Graphics g)
    {            
    	g.drawRect(200,-1,500,400);//画线
    	g.drawLine(200,130,700,130);
    	g.drawLine(200,260,700,260);

    ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);	
    Rectangle r = g.getClipBounds();//平滑小球
 
    appWidth=this.getSize().width;
    appHeight=this.getSize().height;
 //   x=x+dx;
 	  x=450;
    y=y+dy;
    if (x > (appWidth-d) | x<200) {dx=-dx;BallChangerX=(-BallChangerX);}
    if (y > 400-d | y<-1){ dy=-dy;BallChangerY=(-BallChangerY);}
    
    g.setColor(Color.yellow);
    g.fillOval(x-3, y-3, d+6,d+6);
    g.setColor(Color.red);
    g.fillOval(x, y, d,d);

    }
   public static void main(String args[])
   {
  	  MyRedBall app=new MyRedBall();
 	  app.start();
  	  app.addWindowListener(new MyWindowListener());
   }
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -