Hallo,
ich benötige Hilfe bei der Verbindung von drei verschiedenen Klassen, die zusammen ein ganzes Programm ergeben sollen.
Ich weiß wohl, dass man das über die Vererbung in Java funktioniert, aber leider weiß ich nicht wie ich das anstellen soll.
Ich bin Java Neuling und habe auch sonst mit noch keiner Programmiersprache Kontakt gehabt.
Über Hilfe bin ich sehr dankbar!!
Hier der Code der einzelnen Klassen:
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class frame extends JFrame implements ActionListener {
private JButton schliessen;
private JButton einstellung;
private JButton info;
private JButton ende;
public static void main (String[]args) throws Exception{
frame frame = new frame("UI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,500);
frame.setLayout(null);
frame.setVisible(true);
}
public frame(String title) {
super(title);
schliessen = new JButton("Spiel starten");
schliessen.setBounds(120, 60, 160, 40);
schliessen.addActionListener(this);
add(schliessen);
einstellung = new JButton("How to play?");
einstellung.setBounds(120, 140, 160, 40);
einstellung.addActionListener(this);
add(einstellung);
ende = new JButton("Beenden");
ende.setBounds(120, 220, 160, 40);
ende.addActionListener(this);
add(ende);
JLabel label = new JLabel("Von ......");
label.setBounds(40,340,400,80);
add(label);
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == schliessen){
fenster();
}
if (e.getSource() == einstellung){
Object[] options = { "OK"};
JOptionPane.showOptionDialog(null, "Durch Betätigung der Pfeiltasten über die Gegenstände springen.", "Information",
JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options, options[0]);
}
if (e.getSource() == ende){
System.exit(0);
}
}
public static void fenster(){
JFrame fenster = new JFrame("Game");
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setSize(650,350);
fenster.add(new MoveImage());
// Öffnen nach dem den Start.Klasse hinzufügen!
}
}
import java.awt.Graphics2D;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MoveImage extends JFrame {
private BufferStrategy strategy;
private BufferedImage img;
private int x = 0, y = 0;
private int w, h;
private boolean leftDown, rightDown, upDown, downDown, running = true;
private Thread runner = new Thread() {
{
setPriority(MIN_PRIORITY);
}
public void run() {
try {
while (running) {
Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
g.clearRect(0, 0, 1000,900);
if (rightDown) {
x += 40;
} else if (leftDown) {
x -= 40;
} else if (upDown) {
y -= 40;
} else if (downDown) {
y += 40;
}
if (img != null)
g.drawImage(img, x, y, MoveImage.this);
g.dispose();
strategy.show();
sleep(50L);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
public MoveImage() {
super("MoveImage");
setDefaultCloseOperation(EXIT_ON_CLOSE);
try {
img = ImageIO.read(new File("Donut1.gif"));
w = img.getWidth();
h = img.getHeight();
} catch (IOException e) {
e.printStackTrace();
}
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
int code = evt.getKeyCode();
switch (code) {
case KeyEvent.VK_LEFT:
leftDown = true;
break;
case KeyEvent.VK_RIGHT:
rightDown = true;
break;
case KeyEvent.VK_UP:
upDown = true;
break;
case KeyEvent.VK_DOWN:
downDown = true;
break;
default:
;
}
}
public void keyReleased(KeyEvent evt) {
int code = evt.getKeyCode();
switch (code) {
case KeyEvent.VK_LEFT:
leftDown = false;
break;
case KeyEvent.VK_RIGHT:
rightDown = false;
break;
case KeyEvent.VK_UP:
upDown = false;
break;
case KeyEvent.VK_DOWN:
downDown = false;
break;
default:
;
}
}
public void keyTyped(KeyEvent evt) {
int code = evt.getKeyChar();
switch (code) {
case KeyEvent.VK_ESCAPE:
running = false;
System.exit(0);
}
}
});
setSize(1000,900);
setResizable(false);
setIgnoreRepaint(true);
setVisible(true);
createBufferStrategy(2);
strategy = getBufferStrategy();
}
public static void main(String[] args) {
new MoveImage().start();
}
private void start() {
runner.start();
}
}
import javax.swing.*;
public class Image extends JFrame {
private ImageIcon image1;
private JLabel label1;
Image() {
setLayout(new FlowLayout());
image1 = new ImageIcon(getClass().getResource("Hintergrund.jpg"));
label1 = new JLabel(image1);
}
public static void main (String args[]) {
Image gui = new Image();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
gui.pack();
gui.setTitle("Jumpnut");
}
}```