Hallo,
Ich erzeuge ein JFrame in dem ein Menü mit 48 Einträgen erzeugt werden.
In diesem Menü kann man denn die Geschwindigkeit auswählen mit der random im Fenster Kreise gezeichnet werden.
Das Problem ist das ich bei 48 Einträgen, diese mit einer for Schleife erstelle, sodass ich den ActionListener nicht dazu bringen kann die Variable Speed zum Wert von der variablen a zu verändern.
(Cannot refer to a non-final variable s inside an inner class defined in a different method)
Ich weiß grade echt nicht mehr weiter und würde mich sehr über Hilfe freuen
[Java]
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class zwölfzweite extends JFrame {
int x,y;
int speed= 50;
int[] arr = new int[48];
malen ma = new malen();
simulate si = new simulate();
zwölfzweite(){
setSize(400,300);
MenuBar mb = new MenuBar();
Menu menu = new Menu("Geschwindigkeit");
Menu men = new Menu("Geschwindigkeit ändern");
menu.add(men);
for(int i =0; i<48;i++){
int a = 50+i*20;
String s = String.valueOf(a);
MenuItem de = new MenuItem(s);
men.add(de);
de.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// int speedy = Integer.parseInt(s);
new Thread(si).start();
}
});
}
mb.add(menu);
setMenuBar(mb);
add(ma);
setVisible(true);
}
public static void main(String[] args){
new zwölfzweite();
}
class malen extends JComponent{
public void paintComponent(Graphics g){
g.drawOval(x, y,20, 20);
}
}
class simulate implements Runnable{
public void run(){
while(true){
try{
Thread.sleep(speed);
}catch(InterruptedException e){}
x =(int) (Math.random()*getWidth());
y =(int) (Math.random()*getHeight());
ma.repaint();
}
}
}}
[/Java]
Ich erzeuge ein JFrame in dem ein Menü mit 48 Einträgen erzeugt werden.
In diesem Menü kann man denn die Geschwindigkeit auswählen mit der random im Fenster Kreise gezeichnet werden.
Das Problem ist das ich bei 48 Einträgen, diese mit einer for Schleife erstelle, sodass ich den ActionListener nicht dazu bringen kann die Variable Speed zum Wert von der variablen a zu verändern.
(Cannot refer to a non-final variable s inside an inner class defined in a different method)
Ich weiß grade echt nicht mehr weiter und würde mich sehr über Hilfe freuen
[Java]
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class zwölfzweite extends JFrame {
int x,y;
int speed= 50;
int[] arr = new int[48];
malen ma = new malen();
simulate si = new simulate();
zwölfzweite(){
setSize(400,300);
MenuBar mb = new MenuBar();
Menu menu = new Menu("Geschwindigkeit");
Menu men = new Menu("Geschwindigkeit ändern");
menu.add(men);
for(int i =0; i<48;i++){
int a = 50+i*20;
String s = String.valueOf(a);
MenuItem de = new MenuItem(s);
men.add(de);
de.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// int speedy = Integer.parseInt(s);
new Thread(si).start();
}
});
}
mb.add(menu);
setMenuBar(mb);
add(ma);
setVisible(true);
}
public static void main(String[] args){
new zwölfzweite();
}
class malen extends JComponent{
public void paintComponent(Graphics g){
g.drawOval(x, y,20, 20);
}
}
class simulate implements Runnable{
public void run(){
while(true){
try{
Thread.sleep(speed);
}catch(InterruptedException e){}
x =(int) (Math.random()*getWidth());
y =(int) (Math.random()*getHeight());
ma.repaint();
}
}
}}
[/Java]