Всем здравствуете, не могу сделать для неё простенькое меню состоящее из картинок, может кто помочь,пожалуйста.
Работаю в среде eclipse.
Если кто поможет , пришлите готовый проект на почту
sergey.aleksandrov.91@inbox.ru
Имеются классы Main,Road,Cars,Cars2.
В корневой папке res нужны картинки с название Road.jpg, Cars.png,Cars2.png
Класс Main:
Код:
package JAVA;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
JFrame f = new JFrame ("Java F1");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(1200, 700);
f.add(new Road());
f.setVisible(true);
}
}
Класс Road :
Код:
package JAVA;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Road extends JPanel implements ActionListener, Runnable {
Timer mainTimer = new Timer (20,this);
Image img = new ImageIcon ("res/Road.jpg").getImage();
Cars p = new Cars ();
Thread enemiesFactory =new Thread (this);
List<Cars2> enemies = new ArrayList<Cars2>();
public Road() {
mainTimer.start();
enemiesFactory.start();
addKeyListener(new MyKeyAdapter ());
setFocusable (true);
}
private class MyKeyAdapter extends KeyAdapter {
public void keyPressed (KeyEvent e){
p.keyPressed(e);
}
public void keyReleased (KeyEvent e){
p.keyReleased (e);
}
}
public void paint(Graphics g) {
g = (Graphics2D) g;
g.drawImage(img, p.layer1 , 0, null);
g.drawImage(img, p.layer2 , 0, null);
g.drawImage(p.img, p.x, p.y, null );
double v = (200/Cars.MAX_V) * p.v;
g.setColor(Color.WHITE);
Font font = new Font("Arial", Font.ITALIC, 20);
g.setFont(font);
g.drawString("Скорость :" + v + "км/ч", 100, 30);
Iterator<Cars2> i = enemies.iterator();
while (i.hasNext()){
Cars2 e = i.next();
if (e.x >= 2400 || e.x <= -2400){
i.remove();
}else{
e.move();
g.drawImage(e.img, e.x, e.y, null);
}
}
}
public void actionPerformed (ActionEvent e){
p.move();
repaint ();
testCollisionWithEnemies();
}
private void testCollisionWithEnemies() {
Iterator<Cars2> i = enemies.iterator();
while (i.hasNext()){
Cars2 e = i.next();
if (p.getRect().intersects (e.getRect())){
JOptionPane.showMessageDialog(null, "УПС!!!" );
System.exit(1);
}
}
}
@Override
public void run() {
while (true) {
Random rand = new Random();
try {
Thread.sleep(rand.nextInt(2000));
enemies.add(new Cars2(1200, rand.nextInt(600),rand.nextInt(60),this));
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
Класс Cars:
Код:
package JAVA;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
public class Cars {
public static final int MAX_V = 100;
public static final int MAX_TOP = 150;
public static final int MAX_BOTTON = 400;
Image img_c = new ImageIcon("res/Cars.png").getImage();
Image img_l = new ImageIcon("res/Carslevo.png").getImage();
Image img_r = new ImageIcon("res/Carspravo.png").getImage();
Image img = img_c;
public Rectangle getRect() {
return new Rectangle(x,y,253,67);
}
int v = 0;
int dv = 0;
int s = 0;
int x = 30;
int y = 100;
int dy = 0;
int layer1 = 0;
int layer2 = 1100;
public void move (){
s += v;
v += dv;
if (v <= 0) v = 0;
if (v >= MAX_V) v = MAX_V;
y -= dy;
if (y <= MAX_TOP)y =MAX_TOP;
if (y >= MAX_BOTTON)y =MAX_BOTTON;
if (layer2 - v <=0)
{
layer1 = 0;
layer2 = 1140;
}else {
layer1 -= v;
layer2 -= v;
}
}
public void keyPressed (KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_RIGHT) {
dv = 1;
}
if (key == KeyEvent.VK_LEFT) {
dv = -1;
}
if (key == KeyEvent.VK_UP) {
dy = 10;
img = img_l;
}
if (key == KeyEvent.VK_DOWN) {
dy = -10;
img = img_r;
}
}
public void keyReleased (KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_RIGHT || key == KeyEvent.VK_LEFT) {
dy = 0;
}
if (key == KeyEvent.VK_UP || key == KeyEvent.VK_DOWN) {
dy = 0;
img = img_c;
}
}
}
Класс Cars2:
Код:
package JAVA;
import java.awt.Image;
import java.awt.Rectangle;
import javax.swing.ImageIcon;
public class Cars2 {
int x;
int y;
int v;
Image img = new ImageIcon ("res/cars2.png").getImage();
Road road;
public Rectangle getRect() {
return new Rectangle(x,y,549,158);
}
public Cars2 (int x, int y, int v, Road road){
this.x = x;
this.y = y;
this.v = v;
this.road = road;
}
public void move(){
x = x - road.p.v + v;
}
}
Код нужно оформлять по правилам тегом [CODE]
Модератор.