Selbst programmiertes MC Plugin Variable existiert nicht obwohl ich sie davor benutzt habe?

Das ist der Code der Main.java Datei:

package easytrade.thepixel3261.easytrade;

import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements CommandExecutor{


    @Override
    public void onEnable() {
        getLogger().info("Plugin enabled!");
    }

    @Override
    public void onDisable() {
        getLogger().info("Plugin disabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("convert")) {
            if (!(sender instanceof Player)) {
                sender.sendMessage("Only players can use this command.");
                return true;
            }

            Player player = (Player) sender;

            if (args.length != 2) {
                player.sendMessage("Usage: /convert <material> <amount>");
                return true;
            }

            Material fromMaterial = Material.getMaterial(args[0].toUpperCase());
            int amount = Integer.parseInt(args[1]);

            if (fromMaterial == null) {
                player.sendMessage("Invalid material specified.");
                return true;
            }

            Material toMaterial = null;

            if (fromMaterial == Material.COPPER_INGOT && amount >= 2) {
                toMaterial = Material.EMERALD;
                amount /= 2;
            } else if (fromMaterial == Material.EMERALD && amount >= 1) {
                toMaterial = Material.COPPER_INGOT;
                amount *= 2;
            } else {
                player.sendMessage("Invalid material specified or not enough items.");
                return true;
            }

            ItemStack fromItem = new ItemStack(fromMaterial, amount);

            if (!player.getInventory().containsAtLeast(fromItem, amount)) {
                player.sendMessage("You do not have enough " + fromMaterial.toString().toLowerCase() + "s in your inventory.");
                return true;
            }

            if(toMaterial == Material.EMERALD) {
                ItemStack toItem = new ItemStack(toMaterial, amount/2);
            }
            if(toMaterial == Material.COPPER_INGOT) {
                ItemStack toItem = new ItemStack(toMaterial, amount*2);
            }

            // Remove the specified number of items from the player's inventory
            player.getInventory().removeItem(fromItem);

            // Add the converted items to the player's inventory
            player.getInventory().addItem(toItem);

            player.sendMessage("Successfully converted " + amount + " " + fromMaterial.toString().toLowerCase() + "s to " + amount + " " + toMaterial.toString().toLowerCase() + "s.");

            return true;
        }

        return false;
    }
}

Wenn ich versuch einen build zu machen passiert das:

Bild zu Frage
Java, Minecraft, Spigot
Selbstprogramiertes Plugin auf lokalen Server funktioniert nicht?

Ich habe ein Minecraft Plugin selbst programmiert aber jetzt wird diese Fehlermeldung angezeigt:

[08:53:05] [Server thread/ERROR]: Could not load 'plugins\EasyConvert+1.0.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Cannot find main class `easytrade.thepixel3261.easytrade.EasyTrade'
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:69) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_20_R1.CraftServer.loadPlugins(CraftServer.java:435) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
    at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:219) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:972) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
    at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:303) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
    at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.ClassNotFoundException: easytrade.thepixel3261.easytrade.EasyTrade
    at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:147) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:99) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
    at java.lang.Class.forName0(Native Method) ~[?:?]
    at java.lang.Class.forName(Class.java:534) ~[?:?]
    at java.lang.Class.forName(Class.java:513) ~[?:?]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:67) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    ... 8 more

Als Server Software benutze ich Spigot. Das ist der Code der Main.java Datei:

package easytrade.thepixel3261.easytrade;

import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

    @Override
    public void onEnable() {
        getLogger().info("Plugin enabled!");
    }

    @Override
    public void onDisable() {
        getLogger().info("Plugin disabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("convert")) {
            if (!(sender instanceof Player)) {
                sender.sendMessage("Only players can use this command.");
                return true;
            }

            Player player = (Player) sender;

            if (args.length != 2) {
                player.sendMessage("Usage: /convert <material> <amount>");
                return true;
            }

            Material fromMaterial = Material.getMaterial(args[0].toUpperCase());
            int amount = Integer.parseInt(args[1]);

            if (fromMaterial == null) {
                player.sendMessage("Invalid material specified.");
                return true;
            }

            Material toMaterial = null;

            if (fromMaterial == Material.COPPER_INGOT && amount >= 2) {
                toMaterial = Material.EMERALD;
                amount /= 2;
            } else if (fromMaterial == Material.EMERALD && amount >= 1) {
                toMaterial = Material.COPPER_INGOT;
                amount *= 2;
            } else {
                player.sendMessage("Invalid material specified or not enough items.");
                return true;
            }

            ItemStack fromItem = new ItemStack(fromMaterial, amount);

            if (!player.getInventory().containsAtLeast(fromItem, amount)) {
                player.sendMessage("You do not have enough " + fromMaterial.toString().toLowerCase() + "s in your inventory.");
                return true;
            }

            ItemStack toItem = new ItemStack(toMaterial, amount);

            // Remove the specified number of items from the player's inventory
            player.getInventory().removeItem(fromItem);

            // Add the converted items to the player's inventory
            player.getInventory().addItem(toItem);

            player.sendMessage("Successfully converted " + amount + " " + fromMaterial.toString().toLowerCase() + "s to " + amount + " " + toMaterial.toString().toLowerCase() + "s.");

            return true;
        }

        return false;
    }
}

Java, Minecraft, Bukkit, Spigot, PaperMC
Minecraft Plugin zu .jar umwandeln?

Ich habe ein Minecraft Plugin programmiert welches ich jetzt zu einer .jar Datei umwandeln will damit ich es auf meinen Server benutzen kann. Allerdings wenn ich javac in dem Verzeichnis mit der Main.java datei ausführe, werden mir viele Großbuchstaben und andere Sachen als Fehler angezeigt.

Das ist der Code der Main.java Datei:

package easytrade.thepixel3261.easytrade;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
  @Override
  public void onEnable() {
    getLogger().info("Plugin enabled!");
  }
  @Override
  public void onDisable() {
    getLogger().info("Plugin disabled!");
  }
  @Override
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("convert")) {
      if (!(sender instanceof Player)) {
        sender.sendMessage("Only players can use this command.");
        return true;
      }
      Player player = (Player) sender;
      if (args.length != 2) {
        player.sendMessage("Usage: /convert <material> <amount>");
        return true;
      }
      Material fromMaterial = Material.getMaterial(args[0].toUpperCase());
      int amount = Integer.parseInt(args[1]);
      if (fromMaterial == null) {
        player.sendMessage("Invalid material specified.");
        return true;
      }
      Material toMaterial = null;
      if (fromMaterial == Material.COPPER_INGOT && amount >= 2) {
        toMaterial = Material.EMERALD;
        amount /= 2;
      } else if (fromMaterial == Material.EMERALD && amount >= 1) {
        toMaterial = Material.COPPER_INGOT;
        amount *= 2;
      } else {
        player.sendMessage("Invalid material specified or not enough items.");
        return true;
      }
      ItemStack fromItem = new ItemStack(fromMaterial, amount);
      if (!player.getInventory().containsAtLeast(fromItem, amount)) {
        player.sendMessage("You do not have enough " + fromMaterial.toString().toLowerCase()
            + "s in your inventory.");
        return true;
      }
      ItemStack toItem = new ItemStack(toMaterial, amount);
      // Remove the specified number of items from the player's inventory
      player.getInventory().removeItem(fromItem);
      // Add the converted items to the player's inventory
      player.getInventory().addItem(toItem);
      player.sendMessage("Successfully converted " + amount + " "
          + fromMaterial.toString().toLowerCase() + "s to " + amount + " "
          + toMaterial.toString().toLowerCase() + "s.");
      return true;
    }
    return false;
  }
}

Außerdem werden mir in IntelliJ 5 Warnungen angezeigt, weiß aber nicht wie man das fixen könnte:

Bild zu Frage
Java, Minecraft, Minecraft Plugin, PaperMC
Hilfe bei Economy System?

Hallo Leute. ich habe angefangen ein Economy System zu schreiben aber egal was ich mache wird die Config nicht ausgelesen. Ich finde den Fehler einfach nicht. Vielleicht könnte mir ja jemand der bisschen mehr Ahnung hat mir helfen was das Problem ist. Ich benutze die 1.20.2.

habe den Code mal eingefügt.

package gems;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import org.bukkit.configuration.file.YamlConfiguration;

public class gems_config {
    
    public static Integer getGems(UUID id) {
        File file = new File("plugins//MysticEcon//" +id+ ".gems.yml" );
        YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file); 
        int usergems = cfg.getInt(id+ ".gems.yml");
        return usergems;
    }
    
    public static void addGems(UUID id, int amount ) {
        File file = new File("plugins//MysticEcon//" +id+ ".gems.yml" );
        YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
        int usergems = cfg.getInt(id+ ".gems.yml");
        usergems+=amount;
        cfg.set(id+ ".gems.yml", usergems);
        try {
            cfg.save(file);
        }catch(IOException ioex){
            
        }
        
    }
    
    
    public static void removeGems(UUID id, int amount ) {
        File file = new File("plugins//MysticEcon//" +id+ ".gems.yml" );
        YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
        int usergems = cfg.getInt(id+ ".gems.yml");
        usergems-=amount;
        cfg.set(id+ ".gems.yml", usergems);
        try {
            cfg.save(file);
        }catch(IOException ioex){
            
        }
        
    }
    
    public static boolean hasEnoughtGems(UUID id, int amount) {
        File file = new File("plugins//MysticEcon//" +id+ ".gems.yml" );
        YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
        int usergems = cfg.getInt(id+ ".gems.yml");
        if(usergems >= amount) {
            return true;
        }else {
            return false;
        }
    }
    
    public static void EconConfig(UUID id) {
        File ordner = new File("plugins//MysticEcon");
        File file = new File("plugins//MysticEcon//" +id+".gems.yml"); 
        YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
        
        if(!ordner.exists()) {
            ordner.mkdir();
        }
        if(!file.exists()) {
            try {
                file.createNewFile();
                cfg.set("Gems", 5000);
                cfg.save(file);
            }catch(IOException e) {
            }
        }
    }

}
Java, Programmiersprache
Findet ihr den Taschenrechner gut?

Hey ich habe gerade einfach spontan nach paar Videos Java lernen zum ersten mal mein eigenes Programm erstellen wollen und hab mal versucht einen Taschenrechner der + - / * ausführen kann zu machen, findet ihr den Code ok?

import java.util.Scanner;
public class Calc {
    public static void main (String[] args){
        Scanner scan = new Scanner(System.in);
        int zahl;
        int operation;
        int zahl2;
        int ergebnis = 0;
        int wiederholung = 1;

        while (wiederholung == 1) {

            System.out.println("Tippen sie eine Zahl ein");
            zahl = scan.nextInt();
            System.out.println("Welche Operation möchten sie durchführen? - (0) + (1) / (2) * (3)");
            operation = scan.nextInt();
            if (operation == 0) {
                System.out.println("Mit welcher Zahl möchten sie subtrahieren?");
            } else if (operation == 1) {
                System.out.println("Mit welcher Zahl möchten sie addieren?");
            } else if (operation == 2) {
                System.out.println("Mit welcher Zahl möchten sie dividieren?");
            } else if (operation == 3) {
                System.out.println("Mit welcher Zahl möchten sie multiplizieren?");
            }
            zahl2 = scan.nextInt();
            if (operation == 0) {
                ergebnis = zahl - zahl2;
            } else if (operation == 1) {
                ergebnis = zahl + zahl2;
            } else if (operation == 2) {
                ergebnis = zahl / zahl2;
            } else if (operation == 3) {
                ergebnis = zahl * zahl2;
            }
            System.out.println("Hier ist ihr Ergebnis: " + ergebnis + " ...möchten sie weitere Berechnungen durchführen? ja (1) nein (2)");
            wiederholung = scan.nextInt();
            if (wiederholung == 2) {
                System.out.println("Programm wird beendet");
                break;
            } else if (wiederholung == 1) {
                System.out.println("Super!");
            }
        }
Computer, Java, Programmiersprache
Java / Schiffe versenken: Wie kann ich dafür sorgen, dass die Schiffe nur horizontal und vertikal platziert werden können?

Ich habe diesen Schiffe-versenken-Code geschrieben. Jetzt weiß ich allerdings nicht, wie ich dafür sorgen kann, dass die Schiffe nur horizontal und vertikal plaziert werden können. Das soll durch if-Verzweigungen geregelt werden.

import javax.swing.JOptionPane;

public class Schiffeversenken {
  public static void main(String[] args) {
    // Spielfelderstellung
    int größefeld = Integer.parseInt(JOptionPane.showInputDialog("Wie groß soll das Spielfeld sein?"));
    String[][] spielerarray = new String[größefeld][größefeld];

    // Spielfeld leere Felder Befüllung
    for (int i = 0; i < spielerarray.length; i++) {
      for (int j = 0; j < spielerarray.length; j++) {
        spielerarray[i][j] = "o";
      }
    }

    // Anzahl Schiffe
    int anzahlschiffe = Integer.parseInt(JOptionPane.showInputDialog("Wie viele Schiffe hast du?"));

    for (int i = 0; i < anzahlschiffe; i++) {
      // Größe des Schiffes
      int größeschiff = Integer.parseInt(JOptionPane.showInputDialog("Wie groß ist dein " + (i + 1) + " Schiff?"));

      for (int j = 0; j < größeschiff; j++) {
        // Koordinateneingabe
        JOptionPane.showMessageDialog(null, "Wähle Koordinaten von 0-" + (spielerarray.length - 1));
        int koordinate1;
        int koordinate2;
        koordinate1 = Integer.parseInt(JOptionPane.showInputDialog("Was ist die 1 Koordinate des "+ (j + 1) + " Teil deines Schiffs?"));
        koordinate2 = Integer.parseInt(JOptionPane.showInputDialog("Was ist die 2 Koordinate des "+ (j + 1) + " Teil deines Schiffs?"));
        spielerarray[koordinate1][koordinate2] = "x";
      }
    }

    // Ausgabe Spielfeld
    for (int i = 0; i < spielerarray.length; i++) {
      for (int x = 0; x < spielerarray.length; x++) {
        System.out.print(spielerarray[x][i] + " ");
      }

      System.out.println();
    }
  }
}
Java, Array, Programmiersprache, Algorithmus
Java Input/Output Tests Junit?

Hallo, 

Ich habe folgendes Problem: Ich habe eine Klasse, die die Benutzerinteraktion (Input/Output) handhabt und ich muss Junit4 Tests dafür schreiben. 

Die Klasse, die ich testen möchte, sieht in etwa so aus:

package program;
// imports
public class UserInteraction {
    private Program program;


    private UserInteraction(){
        program = new Program();
    }


    // Menu display
    private void start() {
        while (!program.getProgramStarted) {
            String input = readInput();
            switch (input) {
            case "1":
                addUser();
                break;
            case "2":
                deleteUser();
                break;
            case "3":
                // ...
            default:
                System.err.println("Unknown option");
                break;
            }
        }
    }


    private void addUser() {
        // Output
        String username = readInput();
        program.addUser(username);
        System.out.println("User " + username + "added");
    }


    private void deleteUser() {
        // Output
        String username = readInput();
        program.deleteUser(username);
        System.out.println("User " + username + "deleted");
    }


    @SuppressWarnings("resource")
    private String readInput() {
        return (new Scanner(System.in)).nextLine();
    }


    public void main(String[] args) {
        UserInteraction ui = new UserInteraction();
        ui.start();
    }


}

Die Program Klasse so:

package program;
// imports
public class Program {
    // fields
    private User currentUser;
    private List<User> user = new ArrayList<User>();
    // constructor


    public void addUser(String name) throws Exception {
        if (user.size() >= 6) {
            throw new Exception();
        }
        int newID = user.size() + 1;
        user.add(new User(name, newID));
    }


    public String[] getALlUser() {
        int counter = 0;
        String[] userArray = new String[user.size()];


        for (User s : user) {
            userArray[counter++] = s.toString();
        }
        return userArray;
    }
}

Nun möchte ich zum Beispiel testen, ob die folgende Eingabe korrekt verarbeitet wird:

1
John
=> Benutzer John hinzugefügt

Zu diesem Zweck habe ich einen Junit-Test geschrieben, der wie folgt aussieht:

package tests;


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.PrintStream;


import org.junit.After;
import org.junit.Test;


import program.*;


public class UserInteractionTest {


    private final InputStream originalIn = System.in;
    private final PrintStream originalOut = System.out;
    private Program program;


    @After
    public void restoreStreams() {
        System.setIn(originalIn);
        System.setOut(originalOut);
    }


    @Test
    public void testCreateUser() throws Exception {
        String input = "1\nJohn\n";
        ByteArrayInputStream in = new ByteArrayInputStream(input.getBytes());
        System.setIn(in);
        ByteArrayOutputStream outContent = new ByteArrayOutputStream();
        System.setOut(new PrintStream(outContent)); // Leitet System.out um


        program = new Program();
        try {
            program.main(null);
        } finally {
            System.setIn(originalIn);
        }
        String expectedOutput = "User John added";
        assertTrue("Output not found", outContent.toString().contains(expectedOutput));
    }


}

Die Eingabe ("1\n") wird gemacht, aber danach wird keine Eingabe eingefügt, so dass der Test hängen bleibt.

Weiß jemand, wie man dieses Problem lösen kann? Oder gibt es vielleicht eine bessere Möglichkeit, die Eingabe/Ausgabe meines Java-Programms zu testen/zu überprüfen?

Vielen Dank im Voraus!

Java, Code, Eclipse, Programmiersprache
Ist das schlimm wenn man ein Script/Code komplizierter schreibt als es sein könnte?

Hallo,

Ich bin Programmieranfänger und habe eine Frage bezüglich dem Titel und zwar habe ich um mehr Praxiserfahrung zu sammeln ein simplen Kalkulator für die Konsole programmiert (in Java). Dieser ist jedoch spürbar komplizierter geworden als es sein müsste.

import java.util.Objects;
import java.util.Scanner;

public class Main {

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

        System.out.println("Rechenart:");
        Scanner scanner = new Scanner(System.in);
        String arithmeticMethod = scanner.next();

        if (Objects.equals(arithmeticMethod, "addition") || Objects.equals(arithmeticMethod, "+")) {
            addition();
        } else if (Objects.equals(arithmeticMethod, "subtraction") || Objects.equals(arithmeticMethod, "-")) {
            subtraction();
        } else if (Objects.equals(arithmeticMethod, "multiplication") || Objects.equals(arithmeticMethod, "*") || Objects.equals(arithmeticMethod, "x")) {
            multiplication();
        } else if (Objects.equals(arithmeticMethod, "division") || Objects.equals(arithmeticMethod, ":") || Objects.equals(arithmeticMethod, "/")) {
            division();
        } else if (Objects.equals(arithmeticMethod, "stop")) {
            System.out.println("Program ended.");
        }
    }
    public static void addition() {

        Scanner scanner = new Scanner(System.in);

        int firstSummand;
        int secondSummand;

        System.out.println("1. Summand: ");
        firstSummand = scanner.nextInt();
        System.out.println("2. Summand: ");
        secondSummand = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(firstSummand + secondSummand);
        calculate();
    }
    public static void subtraction() {

        Scanner scanner = new Scanner(System.in);

        int minuend;
        int subtrahend;

        System.out.println("Minuend: ");
        minuend = scanner.nextInt();
        System.out.println("Subtrahend: ");
        subtrahend = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(minuend - subtrahend);
        calculate();
    }
    public static void multiplication() {

        Scanner scanner = new Scanner(System.in);

        int firstFactor;
        int secondFactor;

        System.out.println("1. Factor: ");
        firstFactor = scanner.nextInt();
        System.out.println("2. Factor: ");
        secondFactor = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(firstFactor * secondFactor);
        calculate();
    }
    public static void division() {

        Scanner scanner = new Scanner(System.in);

        int dividend;
        int divisor;

        System.out.println("Dividend: ");
        dividend = scanner.nextInt();
        System.out.println("Divisor: ");
        divisor = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(dividend / divisor);
        calculate();
    }
}

(Entschuldigung dass ich es nicht über ein Bild zeigen kann da nicht alles auf ein Bild passt.) Ist das schlimm? Sollte ich mir das schnell abgewöhnen?

Schonmal Danke im voraus.

Java, Programmiersprache
Javafx intersec funktioniert nicht?
class GameWindow {
    int circleX = 0;
    int circleY = 0;
    int maxX = 500;
    int maxY = 500;
    Circle circle,circlerand;
    HBox root;
    public void fenster()
    {
        figure();
        Stage stage = new Stage();
        root = new HBox();
        create();
        if(circle.getBoundsInParent().intersects(circlerand.getBoundsInParent())){
            System.out.println("circle x =" + circle.getCenterX() + " circlrand x =" + circlerand.getCenterX());
            System.out.println("GameWindow.fenster() getroffen");
            root.getChildren().remove(circlerand);
            create();
        }
        
        
        Scene scene = new Scene(root,maxX, maxY);
        scene.setOnKeyPressed((KeyEvent event) -> {
            switch (event.getCode()) {
                case UP -> {
                    if(circleY >= 2)
                    {
                        circleY -= 1;
                        circle.setTranslateY(circleY);
                        System.out.println("circle Y =" + circleY);
                        
                    }
                }
                case DOWN -> {
                    if(circleY <= (maxY - 42)){
                        circleY += 1;
                    circle.setTranslateY(circleY);
                    System.out.println("circle Y =" + circleY);
                    }
                    
                }
                case LEFT -> {
                    if(circleX >= 0){
                        circleX -= 1;
                        circle.setTranslateX(circleX);
                        System.out.println("circle x = " + circleX);
                    }
                }
                case RIGHT -> {
                    if(circleX <= maxX - 30){
                        circleX += 1;
                        circle.setTranslateX(circleX);
                        System.out.println("circle x =" + circleX);
                        
                    }
                }
                case SHIFT -> {
                System.out.println("circlerand x =" + circlerand.getCenterX() + " y=" + circlerand.getCenterY());
                    System.out.println("circle x = " + circle.getCenterX() + " y = " + circle.getCenterY());
                    
                       
                }
            }
        });
        
        
        
        root.getChildren().addAll(circle);
        stage.setScene(scene);
        stage.show();
    }
    
    private void figure(){
        circle = new Circle(circleX,circleY,15);
          
    }
    
        private void create(){
            Random rand = new Random();
            int x = rand.nextInt(450);
            int y = rand.nextInt(450);
            circlerand = new Circle(x,y,10);
            circlerand.setTranslateX(x);
            circlerand.setTranslateY(y);
            System.out.println("circlerand x =" + circlerand.getCenterX() + " y=" + circlerand.getCenterY());                    
            root.getChildren().add(circlerand);
            
            
        }
    
}

Moin, ich möchte abfragen ob 2 Kreise kollidieren jedoch funktioniert es nicht. Jemand ne Idee woran es liegt?

Java, Programmiersprache
Welche Programmiersprache nach javascript?

ich hab eine lange zeit nichts anderes als javascript gemacht darunter ist auch Typescript und react und vieles mehr und klar man kann noch mehr lernen. Php kann ich ausreichend fürs backend.

aber immer auf den Browser beschränkt zu sein und websites macht auf Dauer keinen spass. Ich will auch in der lage sein desktop programme zu schreiben.
electron js kann das aber ist auch nicht das beste was man nutzen kann und sobalds aufwendiger wird hat man Probleme und riesige Dateien. Man lernt auch nichts neues dadurch das ist nichts für mich.

c# c++ c java oder rust hatte ich im kopf.

(python syntax gefällt mir auch nicht , mir geht es auch ums lernen. Nicht nur mit pip install irgendwas nutzen von jemand anderes. Am ende hast du keine ahnung von der programmierung)

aber wie weiss ich welches der oben genannten Sprachen eher was für mich ist.

Java ist Typescript sehr ähnlich, läuft überall und ich könnte da schnell zurechtkommen aber dafür ist es deutlich langsamer als C++ und nicht so mächtig.

Mit c++ lernst du auch viel und wird oft in Unis oder Schulen gelehrt, hätte damit einen vorteil wenn ich es schon gut kann.
Rust hat einen kleinen hype und viele meinen es wird in zukunft wichtiger werden = mehr jobs.

c# ist soweit ich weiss
nur für windows Anwendungen gut, mit den anderen sprachen könnte man auch in zukunft was für linux machen wenn man lust drauf hat.

ich seh da keinen grossartigen vorteil zu java oder c++ in der schnelligkeit.

Computer, Microsoft, App, IT, Webseite, Java, JavaScript, compiler, Cplusplus, C Sharp, CPP, Informatik, Oracle, Programmiersprache, Python, sdk, C (Programmiersprache), React, Angular

Meistgelesene Fragen zum Thema Java