源码下载(实例一):
jsp开发完整的博研图书馆后台管理系统,不使用框架开发的,太完美了
源码下载(实例二):
javaWeb图书馆管理系统源码mysql版本
源码下载(实例三)
GitHub - uboger/LibraryManager: JAVA GUI 图书馆管理系统
源码下载(实例四):
java swing开发企业人事管理系统源代码下载
2.简易的聊天系统
源码下载(实例一):
java swing开发网络聊天室群聊系统,基于java多线程socket编程
源码下载(实例二):
java swing开发大猫聊天室源码,简单易懂,适合java swing初学者
源码下载(实例三):
java websocket开发简单聊天室系统,实现群聊与一对一单人聊天案例
源码下载(实例四):
jsp开发简单聊天室demo-分享
3.实现通讯录
java通讯录实现了添加删除和查找功能
源码下载(二):
JAVA版通讯录管理系统课程设计源码
源码下载(三):
Java Swing界面.完美设计通讯录..有需要的下
4.坦克大战
源码下载(一):
俄罗斯方块 JAVA版
源码下载(二):
GitHub - FieldSoft-HelloClyde/Tetris-Swing: Swing编写的俄罗斯方块
源码下载(三):
java swing开发的俄罗斯方块游戏,包含完整代码+详细注释
5.五子棋
源码下载(一):
Java实践(十一)——五子棋
源码下载(二):
java swing开发的五子棋小游戏源码
源码下载(三):
java swing开发单机版五子棋源代码下载
源码下载(四):
Java五子棋算法和代码
6.中国象棋
源码下载(一):Java实践(十二)——中国象棋
7.贪吃蛇
java贪吃蛇源代码 、 java贪吃蛇源代码
以上是总结出来的简单的练手项目,希望对你有帮助
import java.awt.*import java.awt.event.*
import javax.swing.*
import java.util.*
public class GreedSnake implements KeyListener{
JFrame mainFrame
Canvas paintCanvas
JLabel labelScore
SnakeModel snakeModel = null
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 GreedSnake() {
mainFrame = new JFrame("GreedSnake")
Container cp = mainFrame.getContentPane()
labelScore = new JLabel("Score:")
cp.add(labelScore, BorderLayout.NORTH)
paintCanvas = new Canvas()
paintCanvas.setSize(canvasWidth+1,canvasHeight+1)
paintCanvas.addKeyListener(this)
cp.add(paintCanvas, BorderLayout.CENTER)
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(this)
mainFrame.pack()
mainFrame.setResizable(false)
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
mainFrame.setVisible(true)
begin()
}
public void keyPressed(KeyEvent e){
int keyCode = e.getKeyCode()
if (snakeModel.running)
switch(keyCode){
case KeyEvent.VK_UP:
snakeModel.changeDirection(SnakeModel.UP)
break
case KeyEvent.VK_DOWN:
snakeModel.changeDirection(SnakeModel.DOWN)
break
case KeyEvent.VK_LEFT:
snakeModel.changeDirection(SnakeModel.LEFT)
break
case KeyEvent.VK_RIGHT:
snakeModel.changeDirection(SnakeModel.RIGHT)
break
case KeyEvent.VK_ADD:
case KeyEvent.VK_PAGE_UP:
snakeModel.speedUp()
break
case KeyEvent.VK_SUBTRACT:
case KeyEvent.VK_PAGE_DOWN:
snakeModel.speedDown()
break
case KeyEvent.VK_SPACE:
case KeyEvent.VK_P:
snakeModel.changePauseState()
break
default:
}
if (keyCode == KeyEvent.VK_R ||
keyCode == KeyEvent.VK_S ||
keyCode == KeyEvent.VK_ENTER){
snakeModel.running = false
begin()
}
}
public void keyReleased(KeyEvent e){
}
public void keyTyped(KeyEvent e){
}
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 = snakeModel.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 = snakeModel.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: " + snakeModel.score
labelScore.setText(s)
}
void begin(){
if (snakeModel == null || !snakeModel.running){
snakeModel = new SnakeModel(this,
canvasWidth/nodeWidth,
canvasHeight/nodeHeight)
(new Thread(snakeModel)).start()
}
}
public static void main(String[] args){
GreedSnake gs = new GreedSnake()
}
}
///////////////////////////////////////////////////
// 文件2
///////////////////////////////////////////////////
import java.util.*
import javax.swing.*
class SnakeModel implements Runnable{
GreedSnake gs
boolean[][] matrix
LinkedList nodeArray = new LinkedList()
Node food
int maxX
int maxY
int direction = 2
boolean running = false
int timeInterval = 200
double speedChangeRate = 0.75
boolean paused = false
int score = 0
int countMove = 0
// 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(GreedSnake gs, int maxX, int maxY){
this.gs = gs
this.maxX = maxX
this.maxY = maxY
// initial matirx
matrix = new boolean[maxX][]
for(int i=0i<maxX++i){
matrix = new boolean[maxY]
Arrays.fill(matrix,false)
}
// initial the snake
int initArrayLength = maxX >20 ? 10 : maxX/2
for(int i = 0i <initArrayLength++i){
int x = maxX/2+i
int y = maxY/2
nodeArray.addLast(new Node(x, y))
matrix[x][y] = true
}
food = createFood()
matrix[food.x][food.y] = true
}
public void changeDirection(int newDirection){
if (direction % 2 != newDirection % 2){
direction = newDirection
}
}
public boolean moveOn(){
Node n = (Node)nodeArray.getFirst()
int x = n.x
int y = n.y
switch(direction){
case UP:
y--
break
case DOWN:
y++
break
case LEFT:
x--
break
case RIGHT:
x++
break
}
if ((0 <= x &&x <maxX) &&(0 <= y &&y <maxY)){
if (matrix[x][y]){
if(x == food.x &&y == food.y){
nodeArray.addFirst(food)
int scoreGet = (10000 - 200 * countMove) / timeInterval
score += scoreGet >0? scoreGet : 10
countMove = 0
food = createFood()
matrix[food.x][food.y] = true
return true
}
else
return false
}
else{
nodeArray.addFirst(new Node(x,y))
matrix[x][y] = true
n = (Node)nodeArray.removeLast()
matrix[n.x][n.y] = false
countMove++
return true
}
}
B/S 还是C/S的?先给你个小的看看基础 能做出来再给你个难点的
十二、计算星期
要求:编写一个Applet小程序,使用Swing组件设计界面,通过下拉组合框选择日期的不同部分,计算设定日期是星期几,初始日期为系统当前日期
功能:
1、 编写一个Applet,使用Swing组件,继承Japplet类
2、 在Applet顶部显示标签和下拉组合框,分别选择年、月、日,年的范围从1990年到2050年
3、 用一个“计算星期”按钮,点击按钮计算星期,并在下方的标签上显信息:××××年××月××日是星期×
4、 创建一个HTML文档显示Applet
实现步骤:
1、 创建Applet
1) 继承javax.swing.JApplet
2) 定义组件和变量,如标签、组合框,保存日期的变量等。日期变量使用java.util.Calendar类
3) 在初始化方法中,初始化和布局组件:
用合适的容器和布局构造图示的界面,使用JcomboBox构造下拉组合框
读取系统当前日期,创建包含当前日期的Calendar类变量。参考代码是:
calendar=Calendar.getInstance()
初始化年、月、日下拉组合框的值,参考代码是:
for(int k=1990k<=2050k++)
cbxYear.addItem(new Integer(k))
将当前年月日设置为下拉框的当前值,如设置年下拉框的代码是:
cbxYear.setSelectedItem(new Integer(calendar.get(Calendar.YEAR)))
提示:
JcomboBox方法
setSelectedItem(Object anObject) 设置要选中的项
setSelectedIdex(int anIndex) 通过索引设置要选中的项,索引从0开始
Object getSelectedItem() 获得选中的项
int getSelectedIndex() 获得选中的索引位置
Calendar类的用法
int get(int field) 读取日期不同域的值
void set(int field,int value) 设置日期不同域的值
域可以是以下值:
Calendar.YEAR 年份
Calendar.MONTH 月份,月份从0开始,即0表示1月,11表示12月。
Calendar.DAY_OF_MONTH 日
Calendar.DAY_OF_WEEK 星期,注意从星期日到星期六对应整数是1到7
编写事件处理程序
从下拉框中读取年、月、日的值,并设置Calendar变量的对应域