import java.awt.*;
創新互聯建站是一家專業提供麻栗坡企業網站建設,專注與成都網站制作、成都做網站、外貿營銷網站建設、html5、小程序制作等業務。10年已為麻栗坡眾多企業、政府機構等服務。創新互聯專業網站制作公司優惠進行中。
import java.awt.event.*;
import java.util.Random;
import javax.swing.Timer;
public class PinBall
{
private final int TABLE_WIDTH = 300;//桌面寬度
private final int TABLE_HEIGHT = 400;//桌面高度
private final int RACKET_Y = 340;//球拍的垂直位置
private final int RACKET_HEIGHT = 20;//球拍高度
private final int RACKET_WIDTH = 60;//球拍寬度
private final int BALL_SIZE = 16;//球的大小
private Frame f = new Frame("彈球游戲");//實例化一個窗口
Random rand = new Random();//實例化一個隨機數生成器
private int ySpeed = 10;//小球的縱向運動數度、
private double xyRate = rand.nextDouble() - 0.5;//返回一個-0.5到0.5之間的比率用控制小球運動方向
private int xSpeed = (int)(ySpeed*xyRate*2);//這個橫向速度在-10到10之間,產生左右擺動運動效果
private int ballX = rand.nextInt(200)+20;//小球開始的橫坐標位置,200表示產生0到100之間的隨機數
private int ballY = rand.nextInt(10)+20;//小球開始的縱坐標位置
private int racketX = rand.nextInt(200);//球拍開始時的橫坐標位置
private MyCanvas tableArea = new MyCanvas();//實力化一個畫布工具,集成Canvas類
private String shape = "";//保存需要繪制圖形的字符串屬性
Timer timer;//聲明一個時間變量
private boolean isLose = false;//表示游戲是否結束
public void init()
{
tableArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));//定義畫布大小
f.add(tableArea);//添加畫布到窗口
KeyAdapter keyProcessor = new KeyAdapter()//實例化一個鍵盤監聽事件適配器
{
public void keyPressed(KeyEvent ke)//重寫適配器里面的按下某鍵盤方法
{
if(ke.getKeyCode()==KeyEvent.VK_LEFT)//按下鍵盤左鍵時
{
if(racketX 0)//球拍左邊框不能出畫布的左邊框
racketX -=10;//按一左鍵次向左移動10個像素
}
if(ke.getKeyCode()==KeyEvent.VK_RIGHT)//按下鍵盤右鍵時
{
if(racketX TABLE_WIDTH - RACKET_WIDTH)//球拍右邊框不能出畫布的右邊框
racketX +=10;//按一次右鍵移動向右移動10個像素
}
}
};
f.addKeyListener(keyProcessor);//給窗口添加鍵盤監聽器
tableArea.addKeyListener(keyProcessor);//給畫布添加鍵盤監聽器
ActionListener taskPerformer = new ActionListener()//這里是實例化了一個監聽接口,這個接口里面只有一個方法
{
public void actionPerformed(ActionEvent evt)//重寫這個接口里面的方法,判斷小球的位置
{
if(ballX=0 || ballX=TABLE_WIDTH-BALL_SIZE)//保證小球橫向上在畫布之內運動
{
xSpeed = -xSpeed;//觸發反方向運動
}
if(ballY=RACKET_Y-BALL_SIZE(ballXracketX||ballXracketX+RACKET_WIDTH))//出了球拍的可擊打范圍
{
timer.stop();//停止對監聽器的觸發
isLose=true;//將標志isLose變量置為true
tableArea.repaint();//調用畫布的重繪方法
}
else if(ballY=0||(ballY=RACKET_Y-BALL_SIZEballYracketXballX=racketX+RACKET_WIDTH))//小球在球拍之內,而其到達球拍的高度
{
ySpeed=-ySpeed;//上下方向改變,小球反彈
}
ballY+=ySpeed;//小球的坐標在縱向上增加
ballX+=xSpeed;//小球的坐標在橫向上的增加
tableArea.repaint();//調用畫布的重繪方法3
}
};
timer = new Timer(100,taskPerformer);//每隔0.1秒運行一次監聽器
timer.start();//計時器開始運行
f.addWindowListener(new MyListener());//關閉窗口事件
f.pack();//設置窗口最佳大小
f.setVisible(true);//顯示窗口
}
class MyListener extends WindowAdapter//關閉窗口的類
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)//程序入口
{
new PinBall().init();//調用PinBall類里面的init()方法
}
class MyCanvas extends Canvas//建一個集成Canvas類的類
{
public void paint(Graphics g)//重寫父類的繪圖方法
{
if(isLose)//如果isLose為真,則在畫布里打印“游戲已結束”
{
g.setColor(new Color(255,0,0));//當前顏色
g.setFont(new Font("黑體",Font.BOLD,30));//字體名稱,樣式,大小
g.drawString("游戲已結束!",50,200);//按坐標繪制文字圖形
}
else//負責
{
g.setColor(new Color(240,240,80));//當前顏色
g.fillOval(ballX,ballY,BALL_SIZE,BALL_SIZE);//填充顏色,根據坐標和長寬填充圓形
g.setColor(new Color(80,80,200));//當前顏色
g.fillRect(racketX,RACKET_Y,RACKET_WIDTH,RACKET_HEIGHT);//填充顏色,根據坐標和長寬填充矩形
}
}
}
}
代碼如下,只是時間倉促有些簡陋,沒有坐標軸,而且大小比例問題也沒有調好。不過功能實現了。嘎嘎,新手上路,騰云駕霧。
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Bbso extends JPanel{
int x,y,x1,y1,m=100;
double d;
public Bbso() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setBounds(100,100,500,300);
f.setTitle("畫曲線");
f.setVisible(true);
f.getContentPane().add(this);
}
public static void main(String arg[]) {
new Bbso();
}
public void paint(Graphics g) {
super.paintComponent(g);
x1=0;
y1=0;
for(x=-250;x250;x++) {
d=-0.2045*x*x+100.41*x-6736.8; //這里填寫公式
y=(int)d;
g.drawLine(x1,y1+m,x,y+m);
x1=x;
y1=y;
}
}
}
import?java.util.Scanner;
public?class?Test?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
int?sum?=?0;
System.out.println("參數個數:");
int?n?=?sc.nextInt();
for(int?i?=?0;?i??n;?i++){
System.out.print("輸入第["?+?(i?+?1)?+?"]個數:"?);
String?temp?=?sc.next();
sum?+=?Integer.parseInt(temp);
}
System.out.println("總和為:"?+?sum);
}
}
首先你要在你的電腦上安裝jdk。你可以在后面鏈接地址下載適合你自己的版本(),如果這個鏈接過期了,請在這個首先找一找。
在你的電腦上配置java環境變量,主要是配置path和classpath。你可以百度java環境變量配置,可以找到很多java環境變量配置方法。配置完畢,可以在cmd窗口下用java -version來查看是否配置成功。如果顯示出java版本相關的信息表示配置成功,可以進行下一步了。
編譯你的源代碼,cmd窗口下把路徑改變(cd)到你源代碼文件所在的路徑,然后用javac 源文件名編譯,例如javac Hello.java(需要注意的是源文件名需要是你文件public類的類名,如果你的文件有public類的話)。當然你也可以不改變(cd)到源文件所在的路徑,你的文件就需要加上絕對路徑就可以了。例如:javac e:\src\Hello.java.
運行你編譯好的文件,java Hello(需要注意運行的時候沒有后綴.java或者.class),同樣你可以不改變路徑用絕對路徑運行,例如:java e:\src\Hello.如果你的代碼中有窗口這樣的類似的圖形化界面,你就需要用javaw來運行。
另外,你可以使用eclipse,NetBeans這樣的集成開發環境(IDE)來寫代碼,這樣方便很多。