Hallo zusammen ich habe ein GUI Fenster erschaffen wo ich mit einem MouseListener bei Klick das Feld in der Farbe verändern kann.
Allerdings möchte ich gerne das die Klickeingabe gespeichert wird um damit weiterzuarbeiten und ich nicht alle Felder belegen darf sondern nach sagen wir 3 Klicks keine klicks mehr möglich sind wie schaffe ich dies?
Bin über jede Hilfe sehr dankbar!
Habe schon probiert mit IF / ELSE zu arbeiten allerdings funktionierte dies nicht.
Dies ist der Code für die GUI
Und hier finden sie den Code wo ich den MouseListener implementiert habe
Allerdings möchte ich gerne das die Klickeingabe gespeichert wird um damit weiterzuarbeiten und ich nicht alle Felder belegen darf sondern nach sagen wir 3 Klicks keine klicks mehr möglich sind wie schaffe ich dies?
Bin über jede Hilfe sehr dankbar!
Habe schon probiert mit IF / ELSE zu arbeiten allerdings funktionierte dies nicht.
Dies ist der Code für die GUI
Java:
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.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.rmi.Remote;
import java.rmi.RemoteException;
import javax.security.auth.callback.Callback;
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;
import Schiffe.GUI.PrintField;
public class GUI extends JFrame implements ActionListener ,MouseListener{
private static final long serialVersionUID = 1L;
public static Spieler[] Spieler = new Spieler[1];
private JLabel Tietel;
private JLabel Name;
private JLabel Name2;
private JButton Start1;
private JButton Beenden;
static JTextField textName;
static JTextField textName2;
public GUI() {
this.setTitle("Schiffe versenken" + Spieler);
this.Tietel = new JLabel("Willkommen 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() {
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() {
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();
}
});
}
public void mouseClicked(MouseEvent arg0) {
// TODO Automatisch generierter Methodenstub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Automatisch generierter Methodenstub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Automatisch generierter Methodenstub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Automatisch generierter Methodenstub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Automatisch generierter Methodenstub
}
}
Und hier finden sie den Code wo ich den MouseListener implementiert habe
Java:
Spielfeld(String name) {
// Spielfeld um seine eigenen Schiffe zu setzen
super("Schiffe setzten");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
setLocation(600, 0); // Lässt die felder nebeneinander aufgehen
setLayout(new GridLayout(5, 5));
final JButton b1 = new JButton();
for (int i = 0; i < 25; i++)
getContentPane().add(new JButton()).addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
((Component) e.getSource()).setBackground(Color.BLACK);
Zuletzt bearbeitet von einem Moderator: