So ich habe die Stadt.java:
Nun möchte ich die einzelnen Städte durch einen JButton aus der Map.java öffnen lassen.
Ich habe folgendes versucht:
Einmal das:
und einmal das:
Beides funktioniert nicht. Ich habe sonst alles gemacht, den Button dem ActionListener hinzugefügt etc.
Wie kann ich es sonst machen?
Übrigens zeigt eclipse mir folgende Fehlermeldung an:
Java:
import javax.swing.*;
import java.awt.event.*;
public class Stadt extends JFrame implements ActionListener
{
int einwohner = 310000;
int einheiten = 5;
boolean spieler = false; //true=Spieler false=bot!
String einheitentext = "Einheiten:" + einheiten;
String labeltext = "Einwohner:" + einwohner;
//Hintergrundbild
JLabel labBild = new JLabel("Version: Alpha 1.0.0");
//Menu
JButton rek = new JButton("Soldaten rekrutieren");
JButton att = new JButton("Angreifen");
JButton map = new JButton("Zurück");
JLabel labEinwohner = new JLabel(labeltext);
JLabel labEinheiten = new JLabel(einheitentext);
public Stadt()
{
setTitle("Crusade of Future");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
map.addActionListener(this);
rek.addActionListener(this);
att.addActionListener(this);
add(labEinwohner);
add(labEinheiten);
if(spieler == true){
add(rek);
}
else
{
add(att);
}
}
public void actionPerformed(ActionEvent evt) {
if (evt.getActionCommand().equals("Soldaten rekrutieren")){
}
}
Stadt besitzer(boolean b)
{
spieler = b;
return null;
}
void Frame(){
Stadt frame = new Stadt();
frame.setSize(1000, 500);
frame.setResizable(false);
frame.setVisible(true);
}
static Stadt Brest = new Stadt().besitzer(true);
static Stadt Paris = new Stadt();
static Stadt Caen = new Stadt();
static Stadt Rennes = new Stadt();
static Stadt Nantes = new Stadt();
static Stadt LeMans = new Stadt();
static Stadt Bordeaux = new Stadt();
static Stadt Toulouse = new Stadt();
static Stadt Montpellier = new Stadt();
static Stadt Marseille = new Stadt();
static Stadt Lyon = new Stadt();
static Stadt Dijon = new Stadt();
static Stadt Limoges = new Stadt();
}
Nun möchte ich die einzelnen Städte durch einen JButton aus der Map.java öffnen lassen.
Ich habe folgendes versucht:
Einmal das:
Java:
public void actionPerformed(ActionEvent evt) {
if (evt.getActionCommand().equals("Brest")){
Stadt.Brest.Frame();
}
}
und einmal das:
Java:
public void actionPerformed(ActionEvent evt) {
if (evt.getActionCommand().equals("Brest")){
Stadt.Brest.setSize(1000, 500);
Stadt.Brest.setResizable(false);
Stadt.Brest.setVisible(true);
}
}
Beides funktioniert nicht. Ich habe sonst alles gemacht, den Button dem ActionListener hinzugefügt etc.
Wie kann ich es sonst machen?
Übrigens zeigt eclipse mir folgende Fehlermeldung an:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Map.actionPerformed(Map.java:62)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Zuletzt bearbeitet: