Eclipse – die neusten Beiträge

Warum wird JButton in Java nicht angezeigt?

Ich programmiere Gerade ein Java Projekt und bin auf das Problem gestoßen das der JButton im secountPanel nicht angezeigt wird.

Das ist mein Code:

package com.testProjekte;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class PrimzahlenRechnerMitGUI {
    static JButton backButton = new JButton("Zurück");

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

    public static void loadGUI() {
        JFrame mainFrame = new JFrame("Primzahl Rechner");
        mainFrame.setResizable(false);
        mainFrame.setSize(450,300);
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFrame.setLocationRelativeTo(null);

        JPanel mainPanel = new JPanel(new GridBagLayout());
        JPanel secountPanel = new JPanel(new GridBagLayout());
        JPanel thirtPanel = new JPanel(new GridBagLayout());

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.insets = new Insets(5, 5, 5, 5);

        CardLayout cardLayout = new CardLayout();
        JPanel cardPanel = new JPanel(cardLayout);

        //main Panel Start
        JButton chooseRange = new JButton("Bereich Eingeben");
        chooseRange.setPreferredSize(new Dimension(chooseRange.getPreferredSize().width + 20, 30));
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.anchor = GridBagConstraints.NORTHWEST;
        mainPanel.add(chooseRange, gbc);


        JButton chooseNumber = new JButton("Nummer eingeben");
        chooseNumber.setPreferredSize(new Dimension(chooseNumber.getPreferredSize().width + 20, 30));
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.anchor = GridBagConstraints.EAST;
        mainPanel.add(chooseNumber, gbc);

        //main Panel end


        //secount Panel Start
        backButton.setPreferredSize(new Dimension(100, 30));
        backButton.setBackground(Color.RED);
        JLabel reangeText = new JLabel("Gib einen Bereich ein");

        JTextField startRange = new JTextField();
        startRange.setPreferredSize(new Dimension(100,30));

        JTextField endRange = new JTextField();
        endRange.setPreferredSize(new Dimension(100,30));

        JButton checkRangeButton = new JButton("Prüfen");

        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.anchor = GridBagConstraints.NORTHWEST;
        gbc.fill = GridBagConstraints.NONE;
        secountPanel.add(backButton, gbc);

        gbc.gridx = 0;
        gbc.gridy = 1;
        secountPanel.add(reangeText, gbc);

        gbc.gridx = 0;
        gbc.gridy = 3;
        secountPanel.add(startRange, gbc);

        gbc.gridx = 0;
        gbc.gridy = 4;
        secountPanel.add(endRange, gbc);

        gbc.gridx = 0;
        gbc.gridy = 5;
        secountPanel.add(checkRangeButton, gbc);
        //secount Panel end


        //thirt Panel start
        backButton.setPreferredSize(new Dimension(100, 30));
        backButton.setBackground(Color.RED);
        JLabel numberText = new JLabel("Gib eine Zahl ein");

        JButton checkNumberButton = new JButton("Prüfen");

        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.anchor = GridBagConstraints.WEST;
        thirtPanel.add(backButton, gbc);


        thirtPanel.add(numberText);
        thirtPanel.add(checkNumberButton);
        //thirt Panel end

        cardPanel.add(mainPanel, "MainPanel");
        cardPanel.add(secountPanel, "SecountPanel");
        cardPanel.add(thirtPanel, "ThirtPanel");

        chooseRange.addActionListener(e -> cardLayout.show(cardPanel, "SecountPanel"));
        chooseNumber.addActionListener(e -> cardLayout.show(cardPanel, "ThirtPanel"));
        backButton.addActionListener(e -> cardLayout.show(cardPanel, "MainPanel"));

        mainFrame.add(cardPanel);
        mainFrame.setVisible(true);
    }
}
App, Java, Code, Eclipse, Programmiersprache, Swing, Java Swing

Java Fx Eclipse Projekt exportieren funktioniert nicht?

Hallo, ich habe ein Programm in Eclipse geschrieben. Extern geholt habe ich mir dafür die Bibliotheken "Java FX" und "Java SDK". Das problem ist, dass ich schon beim Exportieren als "runnable JAR-file" ganz of die Fehlermeldung bekomme, dass es zu oft eine module-info gäbe (duplicate module-info). Allerdings wird die module info von mir nur einmal definiert. Laut diversen Videos ist der fehler aber anscheinend egal. Sie können die Datei nach dem Exportieren trotzdem öffnen. Wenn ich die exportierte Datei mit Java SDX öffnen will, dann passiert nichts. Kurz kommt der ladekreis über dem Mauszeiger und dann ist's vorbei. Über CMD habe ich nachgesehen was das Problem sein könnte. Anscheinend kann die Hauptklasse nicht gefunden werden. (Obwohl ich meine Hauptklasse beim exportieren aber definiert habe). Dann habe ich versucht eine Systemvarbiable im Path hunzuzufügen. Hat auch nichts gebracht. Die Versionen stimmen überein. Sowohl die Java SDX mit FX als auch Excplise. Ein Kollege wollte auch schon mit seinem entwickler tool meines exportieren (er verwendet Marven). Hat auch bei ihm nicht funktionniert. Ich hab auch schon in meinen Projekt Properties die Run-Depug einstellungen gelöscht, meine eigene erstellt und auch VM-Argumente eingefügt (--module-path /path/to/JavaFX/lib --add-modules=javafx.controls , javafx.fxml, javafx.graphics). Nichts hat funktioniert, ich weiß wirklich nicht mehr weiter.

Java, Eclipse, JavaFX, exportieren

Code Error Java?

public class Main {
public static void main(String[] args) {


    GUI gui = new GUI();
    
    }
    
   public static int fak (int n) {
        if (n == 0) {
            return 1;
        }
        return n * fak(n - 1);
    }
    
}

import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class GUI extends JFrame {
    JButton button = new JButton("Berechnen");
    JLabel label = new JLabel("Bitte geben Sie die Zahl ein: ");
    JTextField textfield = new JTextField(2);
    JOptionPane popup = new JOptionPane();
    JPanel panel = new JPanel();
    
    public GUI () {
        setSize(300, 300);
        setTitle("Fakultätsrechner");
        setLayout(new FlowLayout());
        setVisible(true);
        
        panel.add(textfield);
        panel.add(label);
        panel.add(button);
        add(panel);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);


        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    String input = textfield.getText();
                    int number = Integer.parseInt(input);
                    int result = Main.fak(number);
                    JOptionPane.showMessageDialog(null, "Die Fakultät von " + number + " ist " + result);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(null, "Bitte geben Sie eine gültige Ganzzahl ein.");
                }
            }
        });
        
    }





}

Error: java.lang.ClassNotFoundException: Main

Aber wieso findet er denn die Main-Klasse nicht? Verstehe ich nicht.

App, Java, Minecraft, Array, Code, Eclipse, Minecraft Server, Programmiersprache, Swing, game-development, Bukkit, Spigot, Java Swing, Android Studio

Woran könnte es liegen, dass die Entschlüsselung der AES verschlüsselten Nachricht vom Client auf der Serverseite nicht korrekt funktioniert?

Beschreibung:

Ich habe eine Client-Server-Anwendung, bei der der Server einen Befehl an den Client sendet, der diesen Befehl auf dem Client ausführt und dann das Ausgaberesultat zurück an den Server schickt. Der Command-Output wird verschlüsselt, bevor er an den Server gesendet wird, und sollte auf der Serverseite entschlüsselt werden, um die Ausgabe anzuzeigen.

Ablauf:

Client:

public void executeCommand() {
    try {
        Process p = Runtime.getRuntime().exec("cmd /c " + commandInput);
        p.getOutputStream().close();


        InputStream processStdOutput = p.getInputStream();
        Reader r = new InputStreamReader(processStdOutput);
        BufferedReader br = new BufferedReader(r);
        String line;


        while ((line = br.readLine()) != null) {
            writeToServerSocket("cmd18721378231dcad2");
            writeToServerSocket(line + "\n");
            writer.flush();
        }


        p.waitFor();
    } catch (Exception ex) {
        System.out.println(ex.getLocalizedMessage());
    }
}

public void writeToServerSocket(String message) {
	try {
		String encodedMessage = EncryptionHelper.encrypt(message);
		writer.write(encodedMessage);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

Server:

In einer Dauerschleife wird überprüft:

...
String encryptedInput = scanner.nextLine();
            		String input = EncryptionHelper.decrypt(encryptedInput); // Hier vermutlich Fehler
...
else if (input.contains("cmd18721378231dcad2")) {
    String commandOutput = input.substring(19);
    // Problem: Die Entschlüsselung des commandOutput funktioniert nicht korrekt
    // Hier sollte der entschlüsselte Text angezeigt werden
    controller.updatejTextAreaAllChat(commandOutput + "\n");
}

...

Problem:

Der verschlüsselte Command-Output wird vermutlich (nicht komplett sicher da System.out.println zum debuggen beim Server nicht funktioniert aus welchem Grund auch immer) erfolgreich an den Server gesendet, aber die Entschlüsselung auf der Serverseite funktioniert nicht wie erwartet. Der entschlüsselte Text wird nicht korrekt angezeigt, und es wird sobald ich die Anwendung beende die Fehlermeldung "Input byte array has incorrect ending byte" angezeigt.

Code für die Verschlüsselung/Entschlüsselung:

public class EncryptionHelper {
    private static final String KEY = "mysecretkey";


    public static String encrypt(String plainText) throws Exception {
        // ... (Verschlüsselungslogik)
    }


    public static String decrypt(String encryptedText) throws Exception {
        // ... (Entschlüsselungslogik)
    }
}

Was habe ich bereits versucht:

  • Die Übertragung der verschlüsselten Daten wurde überprüft und scheint intakt zu sein.
  • Die Verschlüsselungslogik wurde überprüft und sie scheint korrekt zu sein.
  • Andere Bereiche des Codes wurden überprüft, um sicherzustellen, dass sie das Entschlüsselungsproblem nicht verursachen.
Java, Code, Eclipse, encryption, Socket

Wie ändere ich die Größe der einzelnen JPanels bei einem BorderLayout in Java?

Hallo.

Ich habe in Java einen JFrame erstellt in dem ein JPanel ist, indem sich ein anderes JPanel (mit BorderLayout) befindet das 2 JPanels enthält.

Also so etwa:

JFrame/JPanel/JPanel(BL)
              > JPanel(NORTH)
              > JPanel(SOUTH)

(BL = BorderLayout)

Ich will das die 2 JPanels die in den BL sind so angeordnet sind wie das Spielfeld und das Inventar bei den Zelda NES Spiel aus den 90ern (Bild unten).

Das nördliche JPanel(NORTH) soll das Inventar sein während das südliche(SOUTH) das Spielfeld sein soll auf dem sich das eigentliche Geschehen mit dem Spieler, NPCs, Map usw. abspielt.

Jetzt ist jedoch das Problem dass das JPanel dass das Spielfeld ist fast den ganzen Platz einnimmt:

Spielfeld Panel (Schwarz). Inventar Panel (Grün)

Ich will jedoch das es ungefähr so angeordnet ist:

Wie zu sehen ist, ist bei dem Zelda Spiel das Inventar deutlich größer, während es bei mir eher wie ein Strich aussieht.

Ich habe die Größe des Spielfeld Panels schon definiert, die des Inventar Panels auch.

Ich habe die beiden Panels (Spielfeld und Inventar) in das JP mit dem BL gemacht, welches ich einen anderen JPanel hinzugefügt habe, welches sich im JFrame befindet.

Dann habe ich das JFrame der Größe seiner JPanels eingeglichen mit frame.pack()

(Mein JFrame heißt frame)

Ich habe versucht die Größe der beiden Panels auf verschiedenste Art und Weise zu ändern, jedoch ohne Erfolg.

Ich würde mich freuen wenn jemand eine Lösung dafür kennt.

Danke im voraus.

Bild zum Beitrag
programmieren, Java, Eclipse, Programmiersprache, Swing, Java Swing

Eclipse fehler beim installieren?

hallo ich habe vor kurzem meinen pc upgegradet und alles neu installier inclusive windows 10...nur habe ich jetzt das problem dass ich mir Eclipse nicht merh herunterladen kann da ich die ganze zeit eine fehler meldung bekomme...kann mir jemand helfen???

Ende des Log files:
(ganz viele andere Dowlnloads...)

[2023-06-04 19:09:15] Downloading org.eclipse.mylyn.wikitext.asciidoc

[2023-06-04 19:09:15] Collected 467 artifacts for https://download.eclipse.org/releases/2023-03/202303151000 in 0.259s

[2023-06-04 19:09:15] An error was detected while performing the engine operation and the changes are being rolled back. See the log for details.

[2023-06-04 19:09:15] ERROR: org.eclipse.equinox.p2.engine code=4 An error occurred while collecting items to be installed

 at org.eclipse.oomph.util.OomphPlugin.coreException(OomphPlugin.java:296)

 at org.eclipse.oomph.p2.internal.core.ProfileTransactionImpl$3.commit(ProfileTransactionImpl.java:578)

 at org.eclipse.oomph.p2.internal.core.ProfileTransactionImpl.commit(ProfileTransactionImpl.java:359)

 at org.eclipse.oomph.setup.p2.impl.P2TaskImpl.perform(P2TaskImpl.java:904)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3864)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:3792)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:3773)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:3651)

 at org.eclipse.oomph.setup.internal.installer.SimpleVariablePage.installPerform(SimpleVariablePage.java:1353)

 at org.eclipse.oomph.setup.internal.installer.SimpleVariablePage$20.run(SimpleVariablePage.java:1165)

 ERROR: org.eclipse.equinox.p2.engine code=0 session context was:(profile=C__Users_Noni_eclipse_java-2023-03_eclipse, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).

 ERROR: org.eclipse.equinox.p2.artifact.repository code=1003 Unable to write to repository: file:/C:/Users/Noni/Downloads/%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00.

 java.io.IOException: Failed to create directory C:\Users\Noni\Downloads\

Java, Eclipse, Softwareproblem, eclipse java

Minecraft PVP client error "Failed to load texture java.io.FileNotFoundException" was kann man machen?

Hallo, ich versuche momentan einen eigenden Minecraft PVP-Client zu machen und wollte den Hintergrund vom Main-Menü ändern. Also habe ich den Pfad zum Bild eingegeben: "clientData/MainMenu/main_menu.jpg" (clientData liegt im surce/Minecraft Ordner). Dann aber habe ich beim starten diese Fehlermeldung bekommen:

[Client thread/WARN]: Failed to load texture: minecraft:clientData/MainMenu/main_menu.jpg

java.io.FileNotFoundException: minecraft:clientData/MainMenu/main_menu.jpg

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:64) ~[bin/:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:61) ~[bin/:?]

at net.minecraft.client.renderer.texture.SimpleTexture.loadTexture(SimpleTexture.java:30) ~[bin/:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:64) [bin/:?]

at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:39) [bin/:?]

at nexoclient.ui.MainMenu.drawScreen(MainMenu.java:10) [bin/:?]

at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1189) [bin/:?]

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1133) [bin/:?]

at net.minecraft.client.Minecraft.run(Minecraft.java:422) [bin/:?]

at net.minecraft.client.main.Main.main(Main.java:113) [bin/:?]

at Start.main(Start.java:11) [bin/:?]

Das ist der Code, den ich verwendet habe (in Eclipse):

import net.minecraft.client.gui.GuiScreen;

import net.minecraft.util.ResourceLocation;

public class MainMenu extends GuiScreen {

@Override

public void drawScreen(int mouseX, int mouseY, float partialTicks) {

mc.getTextureManager().bindTexture(new ResourceLocation("clientData/MainMenu/main_menu.jpg"));

this.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, this.width, this.height, this.width, this.height);

super.drawScreen(mouseX, mouseY, partialTicks);

und für den code von Minecraft habe ich mcp918 benutzt.

Ich würde mich über eine Antwort freuen.

programmieren, Java, Minecraft, Eclipse

Meistgelesene Beiträge zum Thema Eclipse