Schiffe versenken JButton Schiffe mit GUI verbinden Hilfe!

Husamoli

Mitglied
Hallo

Ich brauche Hilfe ich möchte für ein Schiffe versenken Spiel.
Ich bin auch mit dem Feld soweit fertig allerdings lassen sich meine JButton Schiffe nicht in das GUI Spielfeld integrieren vieleicht kann mir jemand helfen ich wolte dies mit einem Action Listener machen aber dies funktioniert nicht so ganz.

Dies ist die Klasse der Schiffe

package Schiffeversenken;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
//position erstellen, attribut schifflänge als array, evtl. bild einfügen, treffer methode,
public class Schiff implements ActionListener {
int schifflänge[];
int postition;
JFrame buttonSchiffe;
JButton einerSchiff;
JButton zweierSchiff;
JButton dreierSchiff;
JButton fertigGesetzt;
public Schiff() {
this.postition = 1;
}
public void buttonsFürSchiffeSetzen() {
this.buttonSchiffe = new JFrame("Schiffe setzten");
this.einerSchiff = new JButton("Ein-Feld Schiff");
this.zweierSchiff = new JButton("Zwei-Feld Schiff");
this.dreierSchiff = new JButton("Drei-Feld Schiff");
this.fertigGesetzt = new JButton("Fertig");
buttonSchiffe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buttonSchiffe.setSize(200, 200);
buttonSchiffe.setLocation(1090, 10);
buttonSchiffe.setLayout(new FlowLayout());
buttonSchiffe.getContentPane().add(einerSchiff);
buttonSchiffe.getContentPane().add(zweierSchiff);
buttonSchiffe.getContentPane().add(dreierSchiff);
buttonSchiffe.getContentPane().add(fertigGesetzt);
einerSchiff.addActionListener(this);
zweierSchiff.addActionListener(this);
dreierSchiff.addActionListener(this);



buttonSchiffe.setVisible(true);
}

public void actionPerformed(ActionEvent e) { // Schiffe Buttons den Schifflängen zuweisen

if (e.getSource() == this.einerSchiff) { // get Source = Das Objekt, auf dem das Ereignis anfänglich aufgetreten ist. Rückgabe bei dem Objekt wo das Ereignis anfänglich aufgetreten ist


einerSchiff.setEnabled(false); // set enabled aktiviert oder deaktiviert die Schaltfläche
Spielfeld s = new Spielfeld("");
s.add(einerSchiff, schifflänge[0]);

s.setBackground(Color.BLUE); //funktioniert nicht
schifflänge[2] = schifflänge[0];
//((Component) e.getSource()).setBackground(Color.BLACK); //funktioniert nicht,


} else if (e.getSource() == this.zweierSchiff) {

zweierSchiff.setEnabled(false);
schifflänge[2] = schifflänge[1];
} else if (e.getSource() == this.dreierSchiff) {
dreierSchiff.setEnabled(false);
schifflänge[2] = schifflänge[2];




Und dies die Klasse der GUI
package Schiffeversenken;
import java.awt.Color;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.rmi.Remote;
import java.rmi.RemoteException;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class GUI extends JFrame implements ActionListener, Interface {
private static final long serialVersionUID = 1L;
private JLabel Tietel;
private JLabel Name;
private JLabel Name2;
private JButton Start1;
private JButton Beenden;
private JTextField textName;
private JTextField textName2;
public GUI() throws RemoteException {
this.setTitle("Schiffe versenken");
this.Tietel = new JLabel("Willkomen zum Schiffeversenken");
this.Name = new JLabel("Name 1");
this.Name2 = new JLabel("Name 2");
this.Start1 = new JButton("Start");
this.Beenden = new JButton("Beenden");
this.textName = new JTextField();
this.textName2 = new JTextField();
new JTextField();
this.setVisible(true);
Beenden.addActionListener(this);
add(Beenden);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500, 500);
this.setLayout(new GridBagLayout());
this.ordneAn();
this.Listenererstellen();
this.setVisible(true);
}
public void ordneAn() throws RemoteException {
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(4, 4, 4, 4);
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 0;
this.getContentPane().add(Tietel, c);
c.gridx = 0;
c.gridy = 1;
this.getContentPane().add(Name, c);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 3;
this.getContentPane().add(textName, c);
c.gridx = 2;
c.gridy = 1;
this.getContentPane().add(Name2, c);
c.gridx = 2;
c.gridy = 2;
c.gridwidth = 2;
this.getContentPane().add(textName2, c);
c.gridx = 0;
c.gridy = 3;
c.gridwidth = 1;
this.getContentPane().add(Start1, c);
c.gridx = 3;
c.gridy = 3;
c.gridwidth = 1;
this.getContentPane().add(Beenden, c);
}
@Override
public void actionPerformed(ActionEvent ae) {
Object object = ae.getSource();
if (object.equals(Beenden)) {
System.exit(0);
}
}
public void Listenererstellen() throws RemoteException {
Start1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Spielfeld feld1 = new Spielfeld();
Spielfeld feld2 = new Spielfeld("baba");
Schiff schiffe = new Schiff();
schiffe.buttonsFürSchiffeSetzen();
}
});
}
}


Bin über jede Hilfe sehr dankbar!
 

MoxxiManagarm

Top Contributor
  • Bitte setze deinen Code in Code Tags [code=java]hier dein code[/code]. Das erhöht die Chance, dass dir jemand hilft, ungemein.
  • Was hast du mit dem 2. JFrame in Schiff vor? Mehrere JFrames ist eher untypisch. Wenn dann empfehle ich JDialog.
  • Du hast für fertigGesetzt keinen ActionListener
  • Umlaute in Java Code können Probleme machen, z.B. buttonsFürSchiffeSetzen()
  • bitte schreibe Methoden und Variablen immer klein z.B. Listenererstellen()
  • schifflänge[2] = schifflänge[2]; ?????
  • Ich sehe dass du mit RMI arbeiten willst. Ich würde aber GUI und RMI Kommunikation klar voneinander trennen.
  • ...

Alles in allem für mich absolut konfus, ich weiß nicht wo hier etwas anfängt, wo es aufhört und wozu es gedacht ist. Bringe mehr Struktur die in Sache (eventuell MVC?) und die Chance ist hoch, dass du shcon selbst deine Stolpersteine aus dem Weg räumen kannst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
H "Schiffe versenken" Allgemeine Java-Themen 3
N JButton Konflikt mit Graphics Allgemeine Java-Themen 14
F JButton und ActionListener Allgemeine Java-Themen 3
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
Aruetiise LayoutManager JButton in den Hintergrund Allgemeine Java-Themen 7
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
D AWT JButton und KeyAdapter Allgemeine Java-Themen 1
M JButton setEnabled(false) seltsames Ereignis Allgemeine Java-Themen 1
R via JButton in JTextArea printen Allgemeine Java-Themen 2
S Mit einem jButton eine andere Klasse öffnen Allgemeine Java-Themen 2
H JButton Ursprungsfarbe Allgemeine Java-Themen 2
Developer_X JButton Aktion Allgemeine Java-Themen 5
Developer_X JButton soll gar nichts machen Allgemeine Java-Themen 8
G Serialisieren eines JButton mit Icon Allgemeine Java-Themen 8
G JButton Allgemeine Java-Themen 7
S eigene Klasse die JButton extended - als Liste! Allgemeine Java-Themen 6
P JButton klonen Allgemeine Java-Themen 8
P JButton dnd Allgemeine Java-Themen 29
G Plug-in: Wie JButton einfügen? Allgemeine Java-Themen 12
M Swing JButton Farbe zurücksetzen Allgemeine Java-Themen 6
O JButton oder Checkboxes als Array ? Allgemeine Java-Themen 3
T Allgemeinklasse zu JPanel, JButton. Allgemeine Java-Themen 26
P eigener Thread für einen JButton Allgemeine Java-Themen 32
E JButton bleibt in der JTable Allgemeine Java-Themen 2
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
S JButton als Hyperlink ? Allgemeine Java-Themen 32
MQue JButton erkennen Allgemeine Java-Themen 2
MQue JButton an verschiedenen Variablen Allgemeine Java-Themen 2
MQue JButton zu JPanel hinzufügen Allgemeine Java-Themen 7
B Vermeiden das JButton schneller hintereinander drücken Allgemeine Java-Themen 3
G Hilfe - JButton in JTable (Spalte) einfügen! Allgemeine Java-Themen 6
M JButton verursacht einen HeapSpace Error? Allgemeine Java-Themen 6
N JList mit Mausklick auf einen JButton scrollen Allgemeine Java-Themen 28
thE_29 JButton einfärben Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben