java小程序源代碼修改 用java寫小程序

求Java 日歷的小程序的源代碼

也不知道你具體需求是什么,以前改過一個(gè)日歷程序,一共四個(gè)java類,放在同一個(gè)包里。經(jīng)測(cè)試可以運(yùn)行。

成都創(chuàng)新互聯(lián)公司主營(yíng)永春網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),永春h5小程序開發(fā)搭建,永春網(wǎng)站營(yíng)銷推廣歡迎永春等地區(qū)企業(yè)咨詢

//Start.java

import java.awt.*;

import javax.swing.*;

class Start{

public static void main(String [] args){

DateFrame frame=new DateFrame();

frame.setLocationRelativeTo(frame);

frame.setResizable(false);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

//DateInfo.java

import java.util.*;

public class DateInfo{

private int mYear, mMonth;

private int mDayOfMonth, mFristWeek;

public DateInfo(int year, int month) throws DateException{

mYear = year;

if (month 0 || month 12){

throw (new DateException());

}

mMonth = month;

mDayOfMonth = getDayOfMonth(mYear, mMonth);

mFristWeek = getFristWeek(mYear, mMonth);

}

private int getDayOfMonth(int year, int month){

int[][] ary = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},

{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};

return (ary[isLeapYear(year)][month]);

}

private int isLeapYear(int year){

if (year % 4 == 0 year % 100 != 0 ||year % 400 == 0){

return (1);

}

else{

return (0);

}

}

private int getFristWeek(int year, int month){

java.util.Calendar cal = Calendar.getInstance();

cal.set(year, month - 1, 1);

return (cal.get(Calendar.DAY_OF_WEEK) - 1);

}

public String toString(){

String str;

str = "\t\t" + mYear + "年" + mMonth + "月\n";

str += "日\(chéng)t一\t二\t三\t四\t五\t六\n";

int i;

for (i = 1; i = mFristWeek; i++){

str += " \t";

}

for (int j = 1; j = mDayOfMonth; j++, i++){

str +=j+"\t" ;

if (i % 7 == 0){

str += "\n";

}

}

return (str);

}

}

//DateFrame.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Calendar;

class DateFrame extends JFrame implements Runnable{

Calendar date=Calendar.getInstance();

String[] str={"1","2","3","4","5","6","7","8","9","10","11","12"};

JLabel lblYear=new JLabel("年 ");

JLabel lblMonth=new JLabel("月 ");

JLabel lblDate=new JLabel("現(xiàn)在的時(shí)間是:");

JLabel lblShowDate=new JLabel();

// javax.swing.JTextField trxt =new JTextField(10);

// trxt.setHorizontalAlignment(JTextField.RIGHT); //設(shè)置文本從右邊輸入

JComboBox cboMonth=new JComboBox(str);

JComboBox cboYear=new JComboBox();

JTextArea txaShow=new JTextArea();

JPanel pnlNorth=new JPanel();

JPanel pnlSOUTH=new JPanel();

JButton btnShow=new JButton("顯示");

JButton btnClose=new JButton("關(guān)閉");

JScrollPane jsp=new JScrollPane(txaShow);

Container c=this.getContentPane();

public DateFrame(){

Thread thread=new Thread(this);

thread.start();

this.setTitle("玩玩日歷拉!!!");

this.setSize(300,260);

for (int i = 1990; i=2025; i++) {

cboYear.addItem(""+i);

}

cboYear.setSelectedItem(""+(date.get(Calendar.YEAR)));

cboMonth.setSelectedItem(""+(date.get(Calendar.MONTH)+1));

pnlNorth.add(cboYear);

txaShow.setTabSize(4); //設(shè)置tab鍵的距離

txaShow.setForeground(Color.GREEN);

pnlNorth.add(lblYear);

pnlNorth.add(cboMonth);

pnlNorth.add(lblMonth);

pnlNorth.add(lblDate);

pnlNorth.add(lblShowDate);

c.add(pnlNorth,BorderLayout.NORTH);

c.add(jsp);

pnlSOUTH.add(btnShow);

pnlSOUTH.add(btnClose);

c.add(pnlSOUTH,BorderLayout.SOUTH);

btnShow.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

int year=Integer.parseInt((String)cboYear.getSelectedItem());

int month=Integer.parseInt((String)cboMonth.getSelectedItem());

try {

DateInfo date=new DateInfo(year,month);

txaShow.setText(""+date);

}

catch (DateException ex) {

ex.printStackTrace();

}

}

});

btnClose.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

}

public void run(){

try {

while(true){

Thread.sleep(1000);

int hour=date.get(Calendar.HOUR);

int minute=date.get(Calendar.MINUTE);

int second=date.get(Calendar.SECOND);

String str=hour+":"+minute+":"+second;

lblShowDate.setText(str);

//this.repaint();

}

}

catch (Exception ex) {

ex.printStackTrace();

}

}

}

//DateException.java

public class DateException extends Exception{

public DateException(){

super("日期數(shù)據(jù)不合法.");

}

}

java小程序源代碼里的問題,為什么javac編譯不通過呢?我檢查了下也沒問題的。會(huì)的麻煩幫助我下哦,謝謝

不通過具體報(bào)什么錯(cuò)誤呢?看著錯(cuò)誤找問題所在!

PS.你輸出的時(shí)候,第二個(gè)a后邊掉了一個(gè)+號(hào),還有,b沒有初始化,是不能直接使用的,需要先聲明,然后初始化(當(dāng)然聲明和初始化也可以一塊進(jìn)行),然后才能使用。

求一段JAVA編寫的貪吃蛇小程序源代碼

用MVC方式實(shí)現(xiàn)的貪吃蛇游戲,共有4個(gè)類。運(yùn)行GreedSnake運(yùn)行即可。主要是觀察者模式的使用,我已經(jīng)添加了很多注釋了。

1、

/*

* 程序名稱:貪食蛇

* 原作者:BigF

* 修改者:algo

* 說明:我以前也用C寫過這個(gè)程序,現(xiàn)在看到BigF用Java寫的這個(gè),發(fā)現(xiàn)雖然作者自稱是Java的初學(xué)者,

* 但是明顯編寫程序的素養(yǎng)不錯(cuò),程序結(jié)構(gòu)寫得很清晰,有些細(xì)微得地方也寫得很簡(jiǎn)潔,一時(shí)興起之

* 下,我認(rèn)真解讀了這個(gè)程序,發(fā)現(xiàn)數(shù)據(jù)和表現(xiàn)分開得很好,而我近日正在學(xué)習(xí)MVC設(shè)計(jì)模式,

* 因此嘗試把程序得結(jié)構(gòu)改了一下,用MVC模式來實(shí)現(xiàn),對(duì)源程序得改動(dòng)不多。

* 我同時(shí)也為程序增加了一些自己理解得注釋,希望對(duì)大家閱讀有幫助。

*/

package mvcTest;

/**

* @author WangYu

* @version 1.0

* Description:

* /pre

* Create on :Date :2005-6-13 Time:15:57:16

* LastModified:

* History:

*/

public class GreedSnake {

public static void main(String[] args) {

SnakeModel model = new SnakeModel(20,30);

SnakeControl control = new SnakeControl(model);

SnakeView view = new SnakeView(model,control);

//添加一個(gè)觀察者,讓view成為model的觀察者

model.addObserver(view);

(new Thread(model)).start();

}

}

-------------------------------------------------------------

2、

package mvcTest;

//SnakeControl.java

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

/**

* MVC中的Controler,負(fù)責(zé)接收用戶的操作,并把用戶操作通知Model

*/

public class SnakeControl implements KeyListener{

SnakeModel model;

public SnakeControl(SnakeModel model){

this.model = model;

}

public void keyPressed(KeyEvent e) {

int keyCode = e.getKeyCode();

if (model.running){ // 運(yùn)行狀態(tài)下,處理的按鍵

switch (keyCode) {

case KeyEvent.VK_UP:

model.changeDirection(SnakeModel.UP);

break;

case KeyEvent.VK_DOWN:

model.changeDirection(SnakeModel.DOWN);

break;

case KeyEvent.VK_LEFT:

model.changeDirection(SnakeModel.LEFT);

break;

case KeyEvent.VK_RIGHT:

model.changeDirection(SnakeModel.RIGHT);

break;

case KeyEvent.VK_ADD:

case KeyEvent.VK_PAGE_UP:

model.speedUp();

break;

case KeyEvent.VK_SUBTRACT:

case KeyEvent.VK_PAGE_DOWN:

model.speedDown();

break;

case KeyEvent.VK_SPACE:

case KeyEvent.VK_P:

model.changePauseState();

break;

default:

}

}

// 任何情況下處理的按鍵,按鍵導(dǎo)致重新啟動(dòng)游戲

if (keyCode == KeyEvent.VK_R ||

keyCode == KeyEvent.VK_S ||

keyCode == KeyEvent.VK_ENTER) {

model.reset();

}

}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent e) {

}

}

-------------------------------------------------------------

3、

/*

*

*/

package mvcTest;

/**

* 游戲的Model類,負(fù)責(zé)所有游戲相關(guān)數(shù)據(jù)及運(yùn)行

* @author WangYu

* @version 1.0

* Description:

* /pre

* Create on :Date :2005-6-13 Time:15:58:33

* LastModified:

* History:

*/

//SnakeModel.java

import javax.swing.*;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.Observable;

import java.util.Random;

/**

* 游戲的Model類,負(fù)責(zé)所有游戲相關(guān)數(shù)據(jù)及運(yùn)行

*/

class SnakeModel extends Observable implements Runnable {

boolean[][] matrix; // 指示位置上有沒蛇體或食物

LinkedList nodeArray = new LinkedList(); // 蛇體

Node food;

int maxX;

int maxY;

int direction = 2; // 蛇運(yùn)行的方向

boolean running = false; // 運(yùn)行狀態(tài)

int timeInterval = 200; // 時(shí)間間隔,毫秒

double speedChangeRate = 0.75; // 每次得速度變化率

boolean paused = false; // 暫停標(biāo)志

int score = 0; // 得分

int countMove = 0; // 吃到食物前移動(dòng)的次數(shù)

// UP and DOWN should be even

// RIGHT and LEFT should be odd

public static final int UP = 2;

public static final int DOWN = 4;

public static final int LEFT = 1;

public static final int RIGHT = 3;

public SnakeModel( int maxX, int maxY) {

this.maxX = maxX;

this.maxY = maxY;

reset();

}

public void reset(){

direction = SnakeModel.UP; // 蛇運(yùn)行的方向

timeInterval = 200; // 時(shí)間間隔,毫秒

paused = false; // 暫停標(biāo)志

score = 0; // 得分

countMove = 0; // 吃到食物前移動(dòng)的次數(shù)

// initial matirx, 全部清0

matrix = new boolean[maxX][];

for (int i = 0; i maxX; ++i) {

matrix[i] = new boolean[maxY];

Arrays.fill(matrix[i], false);

}

// initial the snake

// 初始化蛇體,如果橫向位置超過20個(gè),長(zhǎng)度為10,否則為橫向位置的一半

int initArrayLength = maxX 20 ? 10 : maxX / 2;

nodeArray.clear();

for (int i = 0; i initArrayLength; ++i) {

int x = maxX / 2 + i;//maxX被初始化為20

int y = maxY / 2; //maxY被初始化為30

//nodeArray[x,y]: [10,15]-[11,15]-[12,15]~~[20,15]

//默認(rèn)的運(yùn)行方向向上,所以游戲一開始nodeArray就變?yōu)椋?/p>

// [10,14]-[10,15]-[11,15]-[12,15]~~[19,15]

nodeArray.addLast(new Node(x, y));

matrix[x][y] = true;

}

// 創(chuàng)建食物

food = createFood();

matrix[food.x][food.y] = true;

}

public void changeDirection(int newDirection) {

// 改變的方向不能與原來方向同向或反向

if (direction % 2 != newDirection % 2) {

direction = newDirection;

}

}

/**

* 運(yùn)行一次

* @return

*/

public boolean moveOn() {

Node n = (Node) nodeArray.getFirst();

int x = n.x;

int y = n.y;

// 根據(jù)方向增減坐標(biāo)值

switch (direction) {

case UP:

y--;

break;

case DOWN:

y++;

break;

case LEFT:

x--;

break;

case RIGHT:

x++;

break;

}

// 如果新坐標(biāo)落在有效范圍內(nèi),則進(jìn)行處理

if ((0 = x x maxX) (0 = y y maxY)) {

if (matrix[x][y]) { // 如果新坐標(biāo)的點(diǎn)上有東西(蛇體或者食物)

if (x == food.x y == food.y) { // 吃到食物,成功

nodeArray.addFirst(food); // 從蛇頭贈(zèng)長(zhǎng)

// 分?jǐn)?shù)規(guī)則,與移動(dòng)改變方向的次數(shù)和速度兩個(gè)元素有關(guān)

int scoreGet = (10000 - 200 * countMove) / timeInterval;

score += scoreGet 0 ? scoreGet : 10;

countMove = 0;

food = createFood(); // 創(chuàng)建新的食物

matrix[food.x][food.y] = true; // 設(shè)置食物所在位置

return true;

} else // 吃到蛇體自身,失敗

return false;

} else { // 如果新坐標(biāo)的點(diǎn)上沒有東西(蛇體),移動(dòng)蛇體

nodeArray.addFirst(new Node(x, y));

matrix[x][y] = true;

n = (Node) nodeArray.removeLast();

matrix[n.x][n.y] = false;

countMove++;

return true;

}

}

return false; // 觸到邊線,失敗

}

public void run() {

running = true;

while (running) {

try {

Thread.sleep(timeInterval);

} catch (Exception e) {

break;

}

if (!paused) {

if (moveOn()) {

setChanged(); // Model通知View數(shù)據(jù)已經(jīng)更新

notifyObservers();

} else {

JOptionPane.showMessageDialog(null,

"you failed",

"Game Over",

JOptionPane.INFORMATION_MESSAGE);

break;

}

}

}

running = false;

}

private Node createFood() {

int x = 0;

int y = 0;

// 隨機(jī)獲取一個(gè)有效區(qū)域內(nèi)的與蛇體和食物不重疊的位置

do {

Random r = new Random();

x = r.nextInt(maxX);

y = r.nextInt(maxY);

} while (matrix[x][y]);

return new Node(x, y);

}

public void speedUp() {

timeInterval *= speedChangeRate;

}

public void speedDown() {

timeInterval /= speedChangeRate;

}

public void changePauseState() {

paused = !paused;

}

public String toString() {

String result = "";

for (int i = 0; i nodeArray.size(); ++i) {

Node n = (Node) nodeArray.get(i);

result += "[" + n.x + "," + n.y + "]";

}

return result;

}

}

class Node {

int x;

int y;

Node(int x, int y) {

this.x = x;

this.y = y;

}

}

------------------------------------------------------------

4、

package mvcTest;

//SnakeView.java

import javax.swing.*;

import java.awt.*;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.Observable;

import java.util.Observer;

/**

* MVC模式中得Viewer,只負(fù)責(zé)對(duì)數(shù)據(jù)的顯示,而不用理會(huì)游戲的控制邏輯

*/

public class SnakeView implements Observer {

SnakeControl control = null;

SnakeModel model = null;

JFrame mainFrame;

Canvas paintCanvas;

JLabel labelScore;

public static final int canvasWidth = 200;

public static final int canvasHeight = 300;

public static final int nodeWidth = 10;

public static final int nodeHeight = 10;

public SnakeView(SnakeModel model, SnakeControl control) {

this.model = model;

this.control = control;

mainFrame = new JFrame("GreedSnake");

Container cp = mainFrame.getContentPane();

// 創(chuàng)建頂部的分?jǐn)?shù)顯示

labelScore = new JLabel("Score:");

cp.add(labelScore, BorderLayout.NORTH);

// 創(chuàng)建中間的游戲顯示區(qū)域

paintCanvas = new Canvas();

paintCanvas.setSize(canvasWidth + 1, canvasHeight + 1);

paintCanvas.addKeyListener(control);

cp.add(paintCanvas, BorderLayout.CENTER);

// 創(chuàng)建底下的幫助欄

JPanel panelButtom = new JPanel();

panelButtom.setLayout(new BorderLayout());

JLabel labelHelp;

labelHelp = new JLabel("PageUp, PageDown for speed;", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.NORTH);

labelHelp = new JLabel("ENTER or R or S for start;", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.CENTER);

labelHelp = new JLabel("SPACE or P for pause", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.SOUTH);

cp.add(panelButtom, BorderLayout.SOUTH);

mainFrame.addKeyListener(control);

mainFrame.pack();

mainFrame.setResizable(false);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

mainFrame.setVisible(true);

}

void repaint() {

Graphics g = paintCanvas.getGraphics();

//draw background

g.setColor(Color.WHITE);

g.fillRect(0, 0, canvasWidth, canvasHeight);

// draw the snake

g.setColor(Color.BLACK);

LinkedList na = model.nodeArray;

Iterator it = na.iterator();

while (it.hasNext()) {

Node n = (Node) it.next();

drawNode(g, n);

}

// draw the food

g.setColor(Color.RED);

Node n = model.food;

drawNode(g, n);

updateScore();

}

private void drawNode(Graphics g, Node n) {

g.fillRect(n.x * nodeWidth,

n.y * nodeHeight,

nodeWidth - 1,

nodeHeight - 1);

}

public void updateScore() {

String s = "Score: " + model.score;

labelScore.setText(s);

}

public void update(Observable o, Object arg) {

repaint();

}

}

希望采納

java小程序問題: 我是新手,幫忙修改一下,并加以解釋,謝謝了。

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

public class Ex4_1 extends Applet implements ActionListener //本類實(shí)現(xiàn)了監(jiān)聽

{

TextField text1=new TextField(10); //產(chǎn)生一個(gè)文本框 寬度10

Label lb1=new Label("+");//產(chǎn)生標(biāo)簽

TextField text2=new TextField(10); //產(chǎn)生一個(gè)文本框 寬度10

Label lb2=new Label("=");//

TextField text3=new TextField(10); //產(chǎn)生一個(gè)文本框 寬度10

Button btn=new Button("相加");

//產(chǎn)生一個(gè)按鈕 名叫“相加”

public void Init()

{

//講上面那些控件加到面板上去。。。

add(text1);add(lb1);

add(text2);add(lb2);

add(text3);

add(btn);

btn.addActionListener(this);//給按鈕加上監(jiān)聽事件 也就是綁定自己。。。因?yàn)楸绢悓?shí)現(xiàn)了監(jiān)聽

}

//事件處理方法。。。。

public void actionPerformed(ActionEvent e)

{

int x;

//將兩個(gè)文本的值轉(zhuǎn)換成整形加在一起付給x

x=Integer.parselnt(text1.getText())+Integer.parselnt(text2.getText());

//將x值轉(zhuǎn)換成字符串賦給文本框3

text3.setText(Integer.toString(x));

}

}

網(wǎng)頁(yè)題目:java小程序源代碼修改 用java寫小程序
當(dāng)前網(wǎng)址:http://bm7419.com/article42/ddehshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、外貿(mào)建站、App設(shè)計(jì)、品牌網(wǎng)站制作網(wǎng)頁(yè)設(shè)計(jì)公司、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)