Random in Swing

Status
Nicht offen für weitere Antworten.

Meran

Mitglied
Ich möchte (zum lernen von Java, nicht um am Ende ein tolles Spiel zu haben) ein Schiffeversenken programmieren. Schriftlich habe ich das schon, aber in Swing habe ich im Moment das Problem, dass es natürlich Zufällig sein muss, wo der Gegner sein Schiff platziert. Aber immer wenn ich versuche, einer Variablen einen "Random Wert zuzuweisen", meckert meine IDE.

Ich habe es hiermit versucht:
Java:
Random r1= new Random();
g = r1.nextInt(3)+1;
importiert habe ich java.util.Scanner auch.

Trotzdem will es nicht funktionieren.
Das Ganze in der Main zu machen und dann mit getter und setter den Wert in meine Swing Datei zu holen habe ich auch versucht, aber nicht geschafft.
 

Meran

Mitglied
Ah, bin ich blöd. Ich meinte natürlich, dass ich util.Random importiert habe, nicht Scanner.
Aber auch wenn ich util.* importiere bringt es nichts.
Deklariert hatte ich g auch vorher schon als int (sorry, hab vergessen, es zu sagen), trotzdem findet der es angeblich nicht. NetBeans sagt:
"cannot find symbol
symbol class g
location: class Schiffebersenken.Swing

<identifier> expected
 
S

SlaterB

Gast
du hast einen einfachen Fehler, der sagt dass etwas mit g nicht stimmt,
zwei Zeilen, in den g verwendet wirst hast du schon gepostet,

fällt dir wirklich nicht ein, was jetzt noch essentiell weiterhelfen würde?
 

Meran

Mitglied
NetBeans gibt einem ja die Möglichkeit, die grafische Oberfläche zu designen und Netbeans wandelt es dann in den entsprechenden Quellcode um. Wenn ich das mit Random am Anfang einfüge, bekomme ich eine Fehlermeldung, wenn ich es am Ende in die Main Methode einfüge, dann geht es, aber es wird vom Programm nicht beachtet.
Das ganze Programm (Layer-Events usw weggelassen) sieht dann so aus:
Java:
package schiffeversenken;
import javax.swing.*;
import java.awt.Color;
import java.util.Random;
public class Swing extends javax.swing.JFrame {
public Swing() {
        initComponents();
        setVisible(true);
    }
int a=0;
int u=0;
int g=0;


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        jPanel7 = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        jPanel9 = new javax.swing.JPanel();
        jPanel10 = new javax.swing.JPanel();
        jPanel11 = new javax.swing.JPanel();
        jPanel12 = new javax.swing.JPanel();
        jPanel13 = new javax.swing.JPanel();
        jPanel14 = new javax.swing.JPanel();
        jPanel15 = new javax.swing.JPanel();
        jPanel16 = new javax.swing.JPanel();
        jPanel17 = new javax.swing.JPanel();
        jPanel18 = new javax.swing.JPanel();
        jPanel19 = new javax.swing.JPanel();
        jPanel20 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanel1.setBackground(java.awt.Color.blue);
        jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel1MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, -1, -1));

        jPanel2.setBackground(java.awt.Color.blue);
        jPanel2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel2MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(21, 20, 10, 10));

        jPanel3.setBackground(java.awt.Color.blue);
        jPanel3.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel3MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 20, -1, -1));

        jPanel4.setBackground(java.awt.Color.blue);
        jPanel4.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel4MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 31, -1, -1));

        jPanel5.setBackground(java.awt.Color.blue);
        jPanel5.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel5MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(21, 31, -1, -1));

        jPanel6.setBackground(java.awt.Color.blue);
        jPanel6.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel6MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 31, -1, -1));

        jPanel7.setBackground(java.awt.Color.blue);
        jPanel7.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel7MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 42, -1, -1));

        jPanel8.setBackground(java.awt.Color.blue);
        jPanel8.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel8MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(21, 42, -1, -1));

        jPanel9.setBackground(java.awt.Color.blue);
        jPanel9.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel9MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel9Layout.setVerticalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 42, -1, -1));

        jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Ihr Feld"));

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 44, Short.MAX_VALUE)
        );
        jPanel10Layout.setVerticalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 40, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 60, 70));

        jPanel11.setBackground(java.awt.Color.blue);
        jPanel11.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel11MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
        jPanel11.setLayout(jPanel11Layout);
        jPanel11Layout.setHorizontalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel11Layout.setVerticalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 20, -1, -1));

        jPanel12.setBackground(java.awt.Color.blue);
        jPanel12.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel12MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel12Layout.setVerticalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(111, 20, 10, 10));

        jPanel13.setBackground(java.awt.Color.blue);
        jPanel13.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel13MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
        jPanel13.setLayout(jPanel13Layout);
        jPanel13Layout.setHorizontalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel13Layout.setVerticalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(122, 20, -1, -1));

        jPanel14.setBackground(java.awt.Color.blue);
        jPanel14.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel14MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
        jPanel14.setLayout(jPanel14Layout);
        jPanel14Layout.setHorizontalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel14Layout.setVerticalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 31, -1, -1));

        jPanel15.setBackground(java.awt.Color.blue);
        jPanel15.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel15MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
        jPanel15.setLayout(jPanel15Layout);
        jPanel15Layout.setHorizontalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel15Layout.setVerticalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(111, 31, -1, -1));

        jPanel16.setBackground(java.awt.Color.blue);
        jPanel16.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel16MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
        jPanel16.setLayout(jPanel16Layout);
        jPanel16Layout.setHorizontalGroup(
            jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel16Layout.setVerticalGroup(
            jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel16, new org.netbeans.lib.awtextra.AbsoluteConstraints(122, 31, -1, -1));

        jPanel17.setBackground(java.awt.Color.blue);
        jPanel17.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel17MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
        jPanel17.setLayout(jPanel17Layout);
        jPanel17Layout.setHorizontalGroup(
            jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel17Layout.setVerticalGroup(
            jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 42, -1, -1));

        jPanel18.setBackground(java.awt.Color.blue);
        jPanel18.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel18MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18);
        jPanel18.setLayout(jPanel18Layout);
        jPanel18Layout.setHorizontalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel18Layout.setVerticalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel18, new org.netbeans.lib.awtextra.AbsoluteConstraints(111, 42, -1, -1));

        jPanel19.setBackground(java.awt.Color.blue);
        jPanel19.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel19MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel19Layout = new javax.swing.GroupLayout(jPanel19);
        jPanel19.setLayout(jPanel19Layout);
        jPanel19Layout.setHorizontalGroup(
            jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel19Layout.setVerticalGroup(
            jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel19, new org.netbeans.lib.awtextra.AbsoluteConstraints(122, 42, -1, -1));

        jPanel20.setBorder(javax.swing.BorderFactory.createTitledBorder("Feld des Gegners"));

        javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20);
        jPanel20.setLayout(jPanel20Layout);
        jPanel20Layout.setHorizontalGroup(
            jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 94, Short.MAX_VALUE)
        );
        jPanel20Layout.setVerticalGroup(
            jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 40, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel20, new org.netbeans.lib.awtextra.AbsoluteConstraints(87, 0, 110, 70));

        jLabel1.setText("Bitte positionieren sie ihr Schiff");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, 180, -1));

        pack();
    }// </editor-fold>                        

   //HIER STÄNDEN EIGENTLICH DIE LAYER-EVENTS                                     

    /**
    * @param args the command line arguments
    */

    public static void main(String args[]) {
        int g=3;
Random r1= new Random();
g = r1.nextInt(3)+1;
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Swing().setVisible(true);

            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel16;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel18;
    private javax.swing.JPanel jPanel19;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel20;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    // End of variables declaration                   

}
Wo muss ich alles, was mit Random zu tun hat einfügen, wenn nicht da, wo es ist und auch nicht am Anfang, wo ich alle Variablen deklariere?
 
S

SlaterB

Gast
außerhalb von Methoden/ Konstruktoren kann man nur Variablen deklarieren, keinen normalen Code schreiben,

eine nicht-statische Variable hilft der statischen Methode main nichts,
aber du könntest die Variable auch direkt in der main-Methode deklarieren
 

Meran

Mitglied
Meinst du jetzt, das g=0 auch in die Main am Ende zu setzen? Das macht keinen Unterschied...
Oder meinst du, ich soll das Ganze in der Main "Datei" machen, statt in der Swing "Datei"?
Und falls du das meinst, wie bekomme ich die Variable, die er per Zufall bestimmt hat dann in meine Swing "Datei", um damit zu arbeiten?
 
S

SlaterB

Gast
> das g=0 auch in die Main am Ende zu setzen?

ans Ende klingt so wie 'hinter g = r1.nextInt(3)+1;' und das keinen Sinn machen,
Variablen immer vor der Verwendung deklarieren,
ansonsten
> Das macht keinen Unterschied...

bei dieser Art Grundlagen-Fragen können solche eigene Bewertungen nur wenig überzeugen,
nur Code + evtl. vollständige Fehlermeldungen bringen die Sache weiter

Variablen in anderen Klassen/ Dateien sind schwieriger, besser nicht
 

Meran

Mitglied
Ich meinte folgende Reihenfolge:
Java:
public static void main(String args[]) {
        int g=3;
Random r1= new Random();
g = r1.nextInt(3)+1;
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Swing().setVisible(true);

            }
        });
    }
Da der ganze Ausdruck ja unter dem Teil des Quellcodes steht, in dem ich die Variable g brauche, habe ich gesagt "unter". Wenn ich den Ausdruck so mache, wie ich ihn jetzt hier geschrieben habe und dann am Anfang die Deklaration von g weglasse, kommt bei jedem g ein Fehler, weil für ihn die Variable nicht deklariert ist. Vielleicht, weil sie in der Main ja innerhalb von geschweiften Klammern deklariert ist, die ein eigenes Konstrukt, unabhängig von den Button Funktionen darüber bildet.
 
S

SlaterB

Gast
bei der Zeile
g = r1.nextInt(3)+1;
wird doch nun hoffentlich kein Fehler mehr sein oder doch?

ich vermute halb herauslesen zu können, dass du nun an anderen Stellen im Programm Fehler hast?
sowas bitte deutlich und ausführlich schreiben,
auf keinen Fall gilt
> Das macht keinen Unterschied.
;)

------

also, wenn du g im ganzen Programm verteilt brauchst dann schlage ich als erste einfache Variante vor,
g wie anfangs zu definieren, nur dabei g statisch zu machen, also static davor zu schreiben

-----

> Vielleicht, weil sie in der Main ja innerhalb von geschweiften Klammern deklariert ist, die ein eigenes Konstrukt, unabhängig von den Button Funktionen darüber bildet.

dies ist übrigens genau richtig, gut erkannt, macht ja Hoffnung ;)
 

Meran

Mitglied
Bei der Zeile ist kein Fehler mehr, nein, aber das Programm benutzt einfach den g Wert, den ich am Programm Anfang festgelegt habe, was ja sinnlos ist, da es darauf ankommt, dass g durch einen Zufallsgenerator gesteuert wird, da g dafür zuständig ist, wo der Gegner sein Schiff platziert.
Also kann ich es am Anfang auch nicht static deklarieren, da er dann ja der Variable keinen Wert mehr zuweisen kann, den er aus dem Zufallsgenerator erhält. g hatte ich nur zu Testzwecken eine feste Zahl zugewiesen, nicht, weil es bei der Zahl bleiben soll.
 
S

SlaterB

Gast
einer statischen Variable kannst du genauso Werte zuweisen wie einer nicht-statischen
 

Meran

Mitglied
Aber wenn ich den Block
Java:
int g=3;
Random r1= new Random();
g = r1.nextInt(3)+1;
Nach oben kopiere und ein static vor das g = r1.nextInt(3)+1; setze, dann bekomme ich als Fehler angezeigt: non-static variable r1 cannot be referenced from a static context.
 
S

SlaterB

Gast
oben:
static int g = 3;

oder auch
static int g;

------

unten

Random r1= new Random();
g = r1.nextInt(3)+1;

wie bisher in der main-Methode,
da das zeitlich vor der GUI-Initialisierung passiert, ist das auch früh genug
 

Meran

Mitglied
Irgendwie nimmt der nichts an, was in der main Methode steht, weder, dass er g damit random machen soll, noch, dass er mit System.out.Println irgendwas anzeigen soll (was ich gerade mal zum testen dazu geschrieben habe, um zu sehen, ob er einfach gar nichts macht was da steht oder nur Probleme mit dem random hat).
Hier mal fast der ganze Quellcode (nur einige Button Funktionen fehlen), da ich nicht wüsste, was ich sonst noch beschreiben könnte:
Java:
package schiffeversenken;
import javax.swing.*;
import java.awt.Color;
import java.util.Random;
public class Swing extends javax.swing.JFrame {
public Swing() {
        initComponents();
        setVisible(true);
    }
int a=0;
int u=0;
static int g;


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        jPanel7 = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        jPanel9 = new javax.swing.JPanel();
        jPanel10 = new javax.swing.JPanel();
        jPanel11 = new javax.swing.JPanel();
        jPanel12 = new javax.swing.JPanel();
        jPanel13 = new javax.swing.JPanel();
        jPanel14 = new javax.swing.JPanel();
        jPanel15 = new javax.swing.JPanel();
        jPanel16 = new javax.swing.JPanel();
        jPanel17 = new javax.swing.JPanel();
        jPanel18 = new javax.swing.JPanel();
        jPanel19 = new javax.swing.JPanel();
        jPanel20 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanel1.setBackground(java.awt.Color.blue);
        jPanel1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel1MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, -1, -1));

        jPanel2.setBackground(java.awt.Color.blue);
        jPanel2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel2MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(21, 20, 10, 10));

        jPanel3.setBackground(java.awt.Color.blue);
        jPanel3.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel3MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 20, -1, -1));

        jPanel4.setBackground(java.awt.Color.blue);
        jPanel4.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel4MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 31, -1, -1));

        jPanel5.setBackground(java.awt.Color.blue);
        jPanel5.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel5MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(21, 31, -1, -1));

        jPanel6.setBackground(java.awt.Color.blue);
        jPanel6.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel6MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 31, -1, -1));

        jPanel7.setBackground(java.awt.Color.blue);
        jPanel7.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel7MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 42, -1, -1));

        jPanel8.setBackground(java.awt.Color.blue);
        jPanel8.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel8MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(21, 42, -1, -1));

        jPanel9.setBackground(java.awt.Color.blue);
        jPanel9.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel9MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel9Layout.setVerticalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 42, -1, -1));

        jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Ihr Feld"));

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 44, Short.MAX_VALUE)
        );
        jPanel10Layout.setVerticalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 40, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 60, 70));

        jPanel11.setBackground(java.awt.Color.blue);
        jPanel11.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel11MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
        jPanel11.setLayout(jPanel11Layout);
        jPanel11Layout.setHorizontalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel11Layout.setVerticalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 20, -1, -1));

        jPanel12.setBackground(java.awt.Color.blue);
        jPanel12.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel12MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel12Layout.setVerticalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(111, 20, 10, 10));

        jPanel13.setBackground(java.awt.Color.blue);
        jPanel13.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel13MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
        jPanel13.setLayout(jPanel13Layout);
        jPanel13Layout.setHorizontalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel13Layout.setVerticalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(122, 20, -1, -1));

        jPanel14.setBackground(java.awt.Color.blue);
        jPanel14.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel14MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
        jPanel14.setLayout(jPanel14Layout);
        jPanel14Layout.setHorizontalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel14Layout.setVerticalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 31, -1, -1));

        jPanel15.setBackground(java.awt.Color.blue);
        jPanel15.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel15MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
        jPanel15.setLayout(jPanel15Layout);
        jPanel15Layout.setHorizontalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel15Layout.setVerticalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(111, 31, -1, -1));

        jPanel16.setBackground(java.awt.Color.blue);
        jPanel16.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel16MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
        jPanel16.setLayout(jPanel16Layout);
        jPanel16Layout.setHorizontalGroup(
            jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel16Layout.setVerticalGroup(
            jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel16, new org.netbeans.lib.awtextra.AbsoluteConstraints(122, 31, -1, -1));

        jPanel17.setBackground(java.awt.Color.blue);
        jPanel17.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel17MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
        jPanel17.setLayout(jPanel17Layout);
        jPanel17Layout.setHorizontalGroup(
            jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel17Layout.setVerticalGroup(
            jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 42, -1, -1));

        jPanel18.setBackground(java.awt.Color.blue);
        jPanel18.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel18MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18);
        jPanel18.setLayout(jPanel18Layout);
        jPanel18Layout.setHorizontalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel18Layout.setVerticalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel18, new org.netbeans.lib.awtextra.AbsoluteConstraints(111, 42, -1, -1));

        jPanel19.setBackground(java.awt.Color.blue);
        jPanel19.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jPanel19MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel19Layout = new javax.swing.GroupLayout(jPanel19);
        jPanel19.setLayout(jPanel19Layout);
        jPanel19Layout.setHorizontalGroup(
            jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );
        jPanel19Layout.setVerticalGroup(
            jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 10, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel19, new org.netbeans.lib.awtextra.AbsoluteConstraints(122, 42, -1, -1));

        jPanel20.setBorder(javax.swing.BorderFactory.createTitledBorder("Feld des Gegners"));

        javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20);
        jPanel20.setLayout(jPanel20Layout);
        jPanel20Layout.setHorizontalGroup(
            jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 94, Short.MAX_VALUE)
        );
        jPanel20Layout.setVerticalGroup(
            jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 40, Short.MAX_VALUE)
        );

        getContentPane().add(jPanel20, new org.netbeans.lib.awtextra.AbsoluteConstraints(87, 0, 110, 70));

        jLabel1.setText("Bitte positionieren sie ihr Schiff");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, 180, -1));

        pack();
    }// </editor-fold>                        

    private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {                                     
        if (a==0) {jPanel1.setBackground(Color.lightGray);
        u=1;
        jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
    }                                    

private void jPanel2MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel2.setBackground(Color.lightGray);
    u=2;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel3MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel3.setBackground(Color.lightGray);
    u=3;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel4MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel4.setBackground(Color.lightGray);
    u=4;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel5MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel5.setBackground(Color.lightGray);
    u=5;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel6MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel6.setBackground(Color.lightGray);
    u=6;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel7MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel7.setBackground(Color.lightGray);
    u=7;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel8MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel8.setBackground(Color.lightGray);
    u=8;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel9MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (a==0) {jPanel9.setBackground(Color.lightGray);
    u=9;
    jLabel1.setText("Wo wollen sie hinschießen?");
        a=1;}
}                                    

private void jPanel11MouseClicked(java.awt.event.MouseEvent evt) {                                      
    if (a==1) {
    if (g==1) {jLabel1.setText("Sie haben gewonnen!");
               jPanel11.setBackground(Color.red);
               a=2;}
    if (g!=1) {jLabel1.setText("Sie haben daneben geschossen");
               jPanel11.setBackground(Color.cyan);}
    }
}                                     

private void jPanel12MouseClicked(java.awt.event.MouseEvent evt) {                                      
    if (a==1) {
    if (g==2) {jLabel1.setText("Sie haben gewonnen!");
               jPanel12.setBackground(Color.red);
               a=2;}
    if (g!=2) {jLabel1.setText("Sie haben daneben geschossen");
               jPanel12.setBackground(Color.cyan);}
     }
}                                     
                           

    /**
    * @param args the command line arguments
    */

    public static void main(String args[]) {
        Random r1= new Random();
g = r1.nextInt(3)+1;
System.out.println("g");
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Swing().setVisible(true);

            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel16;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel18;
    private javax.swing.JPanel jPanel19;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel20;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    // End of variables declaration                   

}
An sich läuft das Programm wie gesagt, nur weißt er g eben keinen Zufallswert zu.
 

Landei

Top Contributor
Schonmal
Code:
System.out.println(g);
(ohne Anführungszeichen) verwendet?
 

Meran

Mitglied
Ja, das bringt auch nichts. Er zeigt ja noch nicht mal etwas an, wenn "g" benutze, daher zeigt er bei g dann auch nichts an. Nur wenn ich das ganze in der Main Klasse mache, die auch die Swing Klasse aufruft, schreibt er g in die Konsole.
Über eine dritte Klasse kann ich mit einem get Befehl sogar die zufällige Variable g holen und in der Konsole anzeigen lassen, aber ich bekomme den Wert absolut nicht in meine Swing Klasse.
 

ARadauer

Top Contributor
so was ist jetzt mir dir? wo ist das Problem? weißt du was static heißt? nein? dann lass es mal weg..
Ned so viel herum probieren, mehr versuchen zu verstehen, was man eigentlich macht...

mach dein Random Zeugs mal im Konstruktor...

Java:
import javax.swing.*;

import java.awt.Color;
import java.util.Random;
public class Swing extends javax.swing.JFrame {
	
	public Swing() {
		
		
		Random r1= new Random();
		g = r1.nextInt(3)+1;
		System.out.println(g);
		
		initComponents();
		setVisible(true);
	}

	int g;


	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	@SuppressWarnings("unchecked")
	// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
	private void initComponents() {
		this.getContentPane().add(new JLabel(g+""));


	}// </editor-fold>                        

                                 


	/**
	 * @param args the command line arguments
	 */

	public static void main(String args[]) {
		
		java.awt.EventQueue.invokeLater(new Runnable() {

			public void run() {
				new Swing().setVisible(true);

			}
		});
	}

}

und bitte den variablen sprechende Namen geben. a, u, g is Müll ;-)
 

Leroy42

Top Contributor
Über eine dritte Klasse kann ich mit einem get Befehl sogar die zufällige Variable g holen und in der Konsole anzeigen lassen, aber ich bekomme den Wert absolut nicht in meine Swing Klasse.

Wenn du 'g' über eine dritte Klasse "holen" kannst, dann holst
du ihn doch aus der Swing-Klasse!

Oder steh' ich jetzt völlig auf dem Schlauch? ???:L
 

Meran

Mitglied
@Leroy42 Nein, ich habe eine dritte Klasse extra erstellt, nur um darin g einen Randomwert zuzuweisen und den dann mit get in anderen Klassen verfügbar zu machen, um zu testen, ob es so geht und in die main bekomme ich ihn ja so auch rein, nur in die Swing Klasse eben nicht.

@ARadauer Danke, so funktioniert es. Die Variablen sind vielleicht wirklich ein bisschen zweifelhaft, aber ich wollte sie so kurz wie möglich machen, da sie dauernd im Code vorkommen und ich nicht immer zB "positionDesGegners" schreiben wollte, deshalb einfach g für Gegner. Aber stimmt wohl auf lange Sicht, dass es ausführlicher als "a" sein sollte, im Moment komme ich damit noch gut klar, aber im Moment habe ich ja auch gerade mal 3 Variablen.

Und danke SlaterB für die Vorarbeit und dein Durchhaltevermögen, auch wenn ich kaum ausdrücken konnte, was genau das Problem ist und was ich schon versucht hatte, um es zu lösen.
 

Painii

Bekanntes Mitglied
@ARadauer Danke, so funktioniert es. Die Variablen sind vielleicht wirklich ein bisschen zweifelhaft, aber ich wollte sie so kurz wie möglich machen, da sie dauernd im Code vorkommen und ich nicht immer zB "positionDesGegners" schreiben wollte, deshalb einfach g für Gegner. Aber stimmt wohl auf lange Sicht, dass es ausführlicher als "a" sein sollte, im Moment komme ich damit noch gut klar, aber im Moment habe ich ja auch gerade mal 3 Variablen.

Würd ich dir aber empfehlen, sprechende Namen zu benutzen.
Wenn du irgendwann mal deinen Kindern (Mitarbeiter, Schüler, whatever) dein Programm als Java-einführung zeigst wirst du garantiert nichtmehr wissen was denn nun g, a oder u sein sollte.
 

Meran

Mitglied
Ja, wie gesagt, werde ich dann in Zukunft wohl machen und am Anfang, bei der Initialisierung als Kommentar dahinter schreiben, wofür genau sie da ist, falls es zu lang ist, um es in den Variablennamen zu packen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Random-Objekt und Swing Java Basics - Anfänger-Themen 4
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
laxla123 Bedeutung int random Java Basics - Anfänger-Themen 3
monsterherz Arbeiten mit Random Java Basics - Anfänger-Themen 12
J Math.Random Java Basics - Anfänger-Themen 9
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
K Problem mit "Random" Java Basics - Anfänger-Themen 5
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Random(x,y,z) Java Basics - Anfänger-Themen 4
alialhajhossein math.random Java Basics - Anfänger-Themen 3
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
T Random soll Zufallszahl beibehalten. Java Basics - Anfänger-Themen 11
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
I math.random Grenzwerte Java Basics - Anfänger-Themen 2
C Arraywerte random vertauschen Java Basics - Anfänger-Themen 2
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
SchmidiMC Methoden Random in Methode neu generieren lassen Java Basics - Anfänger-Themen 1
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
D Erste Schritte Random erzeugen Java Basics - Anfänger-Themen 28
D Erste Schritte Random Java Basics - Anfänger-Themen 79
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
F Erste Schritte Random Zahl auswählen Java Basics - Anfänger-Themen 7
J Methoden Math.random unklar Java Basics - Anfänger-Themen 4
N java.util.Random - Zwei Zahlen mit festgesetzter Wahrscheinlichkeit? Java Basics - Anfänger-Themen 15
Thorwine Erste Schritte Wuerfelspiel mit Math.random() Java Basics - Anfänger-Themen 10
S Math.random() Zufall ? Java Basics - Anfänger-Themen 2
S Random Plattformen erstellen Java Basics - Anfänger-Themen 7
C Erste Schritte Random Wert auslesen und ausgeben Java Basics - Anfänger-Themen 2
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
I Random Ergebnis ausgeben und Gewinner ausgeben. Java Basics - Anfänger-Themen 3
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
A Random String in TextView (Android)? Java Basics - Anfänger-Themen 2
V Random Java Basics - Anfänger-Themen 2
X Problem mit Math.random() Java Basics - Anfänger-Themen 2
S Random IDs immer 10-stellig? Wie? Java Basics - Anfänger-Themen 5
T Random vs. Math.random() Java Basics - Anfänger-Themen 2
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
B Variablen Mehrere Zahlen mit unterschiedlicher Wahrscheinlichkeit mit Random auswählen Java Basics - Anfänger-Themen 17
M Random bereich und for schleife Java Basics - Anfänger-Themen 20
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
R java.util.Random Java Basics - Anfänger-Themen 8
T Zufallserzeugung mit math.random und speichern in array Java Basics - Anfänger-Themen 29
J Woher kommt das Objekt "Math" bei Math.random(); ? Java Basics - Anfänger-Themen 3
P Typecasting für Ganzzahlige Zufallszahl (Math.random) Java Basics - Anfänger-Themen 2
I Zwei Mal das selbe Objekt per Random :( Java Basics - Anfänger-Themen 7
E Random Java Basics - Anfänger-Themen 7
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
E Variable neue Random Zahl zuweisen, wenn Button geklickt Java Basics - Anfänger-Themen 5
J Bedeutung von math.random() math.round() Java Basics - Anfänger-Themen 7
K ArrayList random füllen Java Basics - Anfänger-Themen 2
K random problem Java Basics - Anfänger-Themen 3
F Problem Math.random in for-Schleife Java Basics - Anfänger-Themen 8
R (Math.random()*49) zahl darf aber nur einmal gezogen werden Java Basics - Anfänger-Themen 11
B Random() gleiche Zahlen ausschließen Java Basics - Anfänger-Themen 30
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
C math.random() Java Basics - Anfänger-Themen 9
R math.random wertebereich 16-21 Java Basics - Anfänger-Themen 3
B Math.random und Strings Java Basics - Anfänger-Themen 13
R Java Random Java Basics - Anfänger-Themen 13
G Zahl erstellen / Random Java Basics - Anfänger-Themen 12
J Random Java Basics - Anfänger-Themen 11
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
K Random Zahlen in ein Feld Java Basics - Anfänger-Themen 4
N java.util.Random Java Basics - Anfänger-Themen 6
Luk10 math.random() Java Basics - Anfänger-Themen 2
walker23m Datentypen Zufällig umsortieren einer Hashmap(random?) Java Basics - Anfänger-Themen 3
M Junit TestCase für Random() Zahlen Java Basics - Anfänger-Themen 6
S Random zahlen mit unter und obergrenze Java Basics - Anfänger-Themen 3
D Problem mit Set, Stack und Random Java Basics - Anfänger-Themen 2
S Skatblatt darstellen durch Random? Java Basics - Anfänger-Themen 48
C Bereich festelgen bei Random Java Basics - Anfänger-Themen 9
H Random-Zahlen Java Basics - Anfänger-Themen 7
L Random Sortierung Java Basics - Anfänger-Themen 9
T random-methode Java Basics - Anfänger-Themen 18
J Math.random() - kurze frage. Java Basics - Anfänger-Themen 20
J Random Wertebereich Java Basics - Anfänger-Themen 2
B Frage zu Random Java Basics - Anfänger-Themen 21
chik klasse random() Java Basics - Anfänger-Themen 6
B Random Zahlen und Formatierung Java Basics - Anfänger-Themen 6
G Random Zahlen Java Basics - Anfänger-Themen 25
S Diashoow Random Java Basics - Anfänger-Themen 4
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
Spin 4 stellige random zahl erzeugen Java Basics - Anfänger-Themen 4
G random mit tendenz? Java Basics - Anfänger-Themen 8
hedges Würfelwurf mit java.util.Random ohne 0 Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben