Java integer Variable soll sich +1 addieren

3 Antworten

Du deklarierst i jedesmal neu. 2 Zeilen später ist die Variable aber wieder futsch da ihr Gültigkeitsbereich verlassen wurde. Du brauchst eine in dem fall static int i in der Klasse und inkrementierst sie mit i++.

Lernst du das von dir aus?

Du kannst dir merken:

Eine Variable ist nur zwischen den beiden geschweiften Klammerr gültig, zwischen denen sie deklariert wurde.

Das gilt natürlich nicht für öffentliche Klassenvariablen.

Das problem ist gelöst. Danke!

Wenn man eine Variable neu definiert, muss das Int davor weg. Alles ausser der Name muss davor weg.

Java-Problem: JPanel über JPanel anzeigen lassen?

Hallo,

Ich möchte ein Programm schreiben, bei dem ich ein JPanel mit JButtons über einem JPanel mit einer Grafik anzeigen lasse. Das JPanel mit der Grafik soll also den Hintergrund darstellen. Bei folgendem Code ergibt sich aber das Problem, dass nur der JButton zu sehen ist.

Meine Frage lautet also nun, wie man zwei JPanels übereinander anzeigen lassen kann.

import javax.swing.*;
import java.awt.*;

public class Test extends JPanel{

public Test(){
    JFrame frame = new JFrame();
    frame.setSize(500,500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    JPanel panel = new JPanel();
    panel.add(new JButton("Klick"));

    frame.add(this);
    frame.add(panel);
}

public void paint(Graphics g){
    g.setColor(Color.red);
    g.fillRect(0, 0, 500, 500);
}

public static void main(String [] args){
    new Test();
}

}

Danke schon mal für alle Lösungsvorschläge :)

...zur Frage

Variable von einer Klasse in eine andere Übergeben?

Hallo zusammen,

ich programmiere gerade in Java und habe ein kleines Problem.

ich habe 3 neue Klassen erzeugt. Nur die erste Klasse besitzt eine main-Methode. Nun wollte ich die in der main Methode erzeuge Zufallszahl an die dritte Klasse übergeben um dort etwas damit zu machen.

Leider weiß ich nicht wie das geht.

Anbei der Sourcecode:

Hier die Klasse mit der Main-Methode:

package Klassen;

import java.awt.Graphics;
import javax.swing.JPanel;

public class HauptFenster {

    
    public static void main(String[] args) {
        
        Fenster fenster = new Fenster();
        Rechteck panel = new Rechteck();
        
        fenster.add(panel);
        
        while(true){
        
            int high = (int)(Math.random()*200);
            int width = (int)(Math.random()*150);
            
        }
    }
}

Hier die Klasse 3:

package Klassen;

import java.awt.Graphics;
import javax.swing.JPanel;

public class Rechteck extends JPanel {
    
public int zufall;
    
    public Rechteck(){
        
        this.setSize(500, 500);
    }

    public void paint (Graphics g){
        g.fillRect(120, 100, 100, 130);
    }
}

Die Beispiel soll nur zur Übung dienen.

MfG

...zur Frage

Java jfilechooser keine funktion?

Was muss ich machen das wenn ich ne Datei ausgewählt hab das sie auch geöffnet wirt wenn ich den Öffnen Button drücke komme irgendwie nicht weiter ?

import javax.swing.JFileChooser;

 public class OeffnenDialog

{

    public static void main(String[] args)

    {

        JFileChooser chooser = new JFileChooser();

        chooser.showOpenDialog(null);

    }

}

...zur Frage

2 JPanels an der gleichen Stelle, Jeweils 1 in den Vordergrund setzen

Hallo, ich habe ein Programm mit diesem (gekürzten) Quellcode:

package spielPackage; import javax.swing.*; public class Test2 extends JFrame { private static final long serialVersionUID = 1L; JPanel startMenuPanel; JButton spielStartButton; JPanel gameMenuPanel; JButton zumStartMenuButton;

public Test2()
{
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setTitle("Hammer Spiel");
    this.setSize(1000,600);
    this.setLocationRelativeTo(null);
    startMenuPanel = new JPanel();
    spielStartButton = new JButton("Spiel starten");
    startMenuPanel.add(spielStartButton);
    this.add(startMenuPanel);
    gameMenuPanel = new JPanel();
    zumStartMenuButton = new JButton("zum Startmenü");
    gameMenuPanel.add(zumStartMenuButton);
    this.add(gameMenuPanel);
}

public void startMenu()
{   
    gameMenuPanel.setVisible(false);
    startMenuPanel.setVisible(true);
    this.setVisible(true);
}

public static void main(String[] args)
{
    new Test2();
}}

Jetzt will ich, dass durch die startMenu() - Methode das JPanel startMenuPanel sichtbar wird, wenn ich das Programm ausführe, seche ich jedoch nur das JFrame. Was muss ich ändern, dass ich dann tatsächlich das startMenuPanel sehe? Was muss ich machen, wenn ich das gameMenuPanel dann wieder sehen will?

Danke

...zur Frage

Was hab ich falsch beim programmieren gemacht?

Hier ich habe etwas programmiert aber es funktioniert nicht ganz: package Felix; import javax.swing.; import java.awt.; import java.awt.event.; import java.awt.event.; import java.awt.event.; import java.util.; import java.util.*;

public class frame extends JFrame implements ActionListener {

private JButton schliessen;
private JButton einstellungen;
private JButton info;
private JButton ende;
private JButton start;
private JButton start2;


Scanner input = new Scanner( System.in );

public static void main (String[] args) throws InterruptedException {

    frame frame = new frame ("Schere,Stein,Papier") ;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400,400);
    
    frame.setLayout(null);
    frame.setVisible(true);
    



}

public frame (String title) throws InterruptedException {

super(title);

schliessen = new JButton ("Schere"); schliessen.setBounds(120, 40, 160, 40); schliessen.addActionListener(this); add (schliessen);

ende = new JButton ("Stein"); ende.setBounds(120, 120, 160, 40); ende.addActionListener(this); add (ende);

info = new JButton ("Papier"); info.setBounds(120, 200, 160, 40); info.addActionListener(this); add (info);

start= new JButton ("Funktionsweise"); start.setBounds(120, 280, 160, 40); start.addActionListener(this); add (start);

System.out.println("Spiel wird geladen");

Thread.sleep(2000);

System.out.println("Spiel wird vorbereitet");

Thread.sleep(1000);

Random Stein = new Random(); int Z2;

for(int i=1; i<10; i++);{ Z2 = 1+ Stein.nextInt(3);;

}

}

public void ActionPerformed (ActionEvent e) {

if (e.getSource()==schliessen) {
    fenster();
}

if (e.getSource()==ende) {
    fenster();
}
if (e.getSource()==info) {
    fenster();
}

if (e.getSource()==start) {
    Object[] options = { "OK"};
    
    JOptionPane.showOptionDialog(null,"Zuerst sucht sich das System eine zufällige Zahl von 1 bis 3 1 für Schere, 2 für Stein und 3 für Papier. Wenn du dir eins rausgesucht hat werden die Zahlen vergliechen und nach folgender Regel ausgewertet:Papier schlägt Stein,Stein schlägt Schere und Schere schlägt Papier.","Informatio",JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,options,options[0]);}  
}


public static void fenster() {
    JFrame fenster = new JFrame();
    fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    fenster.setSize(650, 350);  
    fenster.setVisible(true);{
        
        
    }

}

} Könnt ihr mir sagen was ? Laut eclipse ist bei public class frame extends JFrame implements ActionListener { ein Fehler :,(.

...zur Frage

Import bei "Throw new RuntimeException"?

public class RuntimeException {

public static void main(String[] args) {

int n = 5;

if (n==5) {

throw new RuntimeException();

}

else {

System.out.println("richtig");

...zur Frage

Was möchtest Du wissen?