Programmieren – die neusten Beiträge

Java Gui: alles verschwindet nach hinzufügen von JButton?

Guten Tag zusammen,

wenn ich die JButtons hinzufüge verschwindet der JLabel und der Button selber.

ich weis nicht wie ich da vorgehen soll, weil ich erst heute mit Gui angefangen habe zu arbeiten.

Das Bild zeigt, wie es mir anzeigt, wenn ich die JButtons hinzufüge.

Ich würde mich auf eure Antworten freuen :)

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Game {

    JFrame window;
    Container con;
    JPanel titleNamePanel;
    JPanel startButtonPanel;
    JLabel titleNameLabel ;
    Font titleFont = new Font("Times New romans", Font.PLAIN, 28);
    JButton startButton;
    public static void main(String[] args) {

        new Game();

    }

    public Game() {

        window = new JFrame();
        window.setSize(800, 600);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setLayout(null);
        window.setVisible(true);
        con = window.getContentPane();

        titleNamePanel = new JPanel();
        titleNamePanel.setBounds(100, 100, 600, 150);
        titleNamePanel.setBackground(Color.blue);
        titleNameLabel = new JLabel("TEST");
        titleNameLabel.setForeground(Color.white);
        titleNameLabel.setFont(titleFont);

        startButtonPanel = new JPanel();
        startButtonPanel.setBounds(300, 400, 200, 100);
        startButtonPanel.setBackground(Color.blue);

        startButton = new JButton("START");
        startButton.setBackground(Color.black);
        startButton.setForeground(Color.white);
        
        titleNamePanel.add(titleNameLabel);
        startButtonPanel.add(startButton);
        con.add(titleNamePanel);
        con.add(startButtonPanel);

    }
}
Bild zum Beitrag
programmieren, Java, Code, jButton, Java Swing

Warum kann man nicht mehr Spezialisierung an Schulen machen?

Hey,

meiner Meinung nach sind unsere Schulen viel zu wenig auf die Interessen der Schüler ausgerichtet

Programmieren kann man meist nur ab der Oberstufe. Und da max. 4 Stunden in der Woche, meistens drei. Ich finde für interessierte und begabte Schüler ist das viel zu wenig.

Wenn ich Bildungsminister wäre, würde ich es so machen

Ab der 8. Klasse kann man sich auf den IT Bereich spezialiseren (und andere Bereiche, aber ich nenne als Beispiel IT)

Dann hat man schon 4 Stunden in der Woche Informatik bis zur 11. Klasse. Dies soll die praktischen/theoretischen Grundlagen und das Interesse für die Oberstufe vermitteln.

Ab der 11. Klasse wählt man das Leistungsprofil IT und Robotik. (34 Stunden Woche)

Hauptfächer in dem Bereich sind: Programmierung (4 Stunden/Woche), Robotik & Autonome Systeme (4 Stunden/Woche) sowie Physik (Schwerpunkt Elektrotechnik 4 Stunden/Woche) und Mathematik (4 Stunden/Woche) + Projektarbeit, wo Schüler das erlernte Wissen in Teams anwenden und ein Projekt auf die Beine stellen müssen (4 Stunden/Woche)

Damit hat man 20 Stunden pro Woche relevante Fächer nach Begabung und Interesse und hat noch 14 Stunden übrig.

Wichtig sind Englisch (4 Stunden/Woche) Philosophie, Politik, Geschichte, Deutsch und Sport (Je 2 Stunden/ Woche)

Damit kommt man auf 34 Stunden/Woche und hat sowohl Begabung und Interesse der Schüler als auch Allgemeinwissen abgedeckt.

Vorteile: Man schafft kompetenten Nachwuchs und hilft Schüler effektiv bei der Orientierung.

Analog macht man es für Berieche, wie Sprachen, Sport, Kunst und Medien oder Biologie und Chemie.

Was meint ihr?

Schule, Technik, IT, programmieren, Bildung, Politik, Lehrer, Ausbildung und Studium, Philosophie und Gesellschaft, Beruf und Büro

MD5-Hash bei Java und C# geben nicht das selbe Ergebnis?

Hallo zusammen,

ich versuche in den letzten Tage mich mit der Entwickleroberfläche der FritzBox auseinander zu setzen. Leider scheitete ich am Session ID Login.

Der Login funktioniert über eine Challenge (String) den mir die FritzBox generiert und dem Passwort der FritzBox. Wenn ich den Login richtig verstanden habe geht er wie folgt:

Schritt 1: Challenge erhalten via fritz.box/login_sid.lua

Schritt 2: Alle Zeichen im Passwort der FritzBox, welche nicht in ISO-8859-1  
           anzeigbar sind (einen CodePoint von über 255 besitzen) mit einem "."  
           ersetzen

Schritt 3: Einen MD5-Hash im Format von 32 Hexzeichen mit Kleinbuchstaben 
           generieren aus dem String %Challenge%-%Passwort% (%Challenge% ist die
           aus dem Schritt 1, %Passwort% ist das Passwort der FritzBox aus dem 
           Schritt 2)

Schritt 4: Das Ergebnis zum Anmelden nutzen: 
           http://fritz.box/login_sid.lua?response=%Challenge%-%Ergebnis% 
           (%Ergebnis% ist der 
           MD5-Hash aus Schritt 3)

So: Was ist nun mein Problem?

Ich möchte diesen MD5-Hash generieren. Ich habe mir bereits Tutorials angeschaut, wie die von baeldung.com und auch einen String als Ergebnis bekommen. Das Problem ist aber, dass der Hash falsch ist.

Also habe ich mir den Beispiel C#-Code auf der FritzBox Webseite angeschaut und ausprobiert. Das Ergebnis ist ein ganz anderer Hash. Wie kommt das zu Stande?

Damit man mich besser versteht, habe ich hier meinen Java Code und den Code aus C#.

Input bei allen:

51cbb71a-Test

Java (Möglichkeit 1): https://pastebin.com/vpzA8mr9 (um Platz zu sparen als Link)

Output:

DigestTest: 3e2a82112b721922d21a2e62e12f02212b02142c12692a82

Java (Möglichkeit 2):

StringBuilder builder = new StringBuilder();
for (byte b : DigestUtils.md5(input)) {
    builder.append(byteToHex(b));
}
System.out.println("BuilderDigest: " + builder.toString());

Output:

BuilderDigest: 3ea811b7192d1ae6e1f021b014c169a8

Java (Möglichkeit 3):

String md5Hex = DigestUtils.md5Hex(input); //API: commons-codec-1.15.jar
System.out.println("Hash: " + md5Hex);

Output:

Hash: 3ea811b7192d1ae6e1f021b014c169a8

C#

static void Main(string[] args) {
  try {
    MD5 md5Hasher = MD5.Create();
    byte[] encoded = Encoding.Unicode.GetBytes("51cbb71a-Test");
    byte[] data = md5Hasher.ComputeHash(encoded);
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < data.Length; i++) {
      builder.Append(data[i].ToString("x2"));
    }
    Console.WriteLine(builder.ToString());
  } catch(IndexOutOfRangeException exception) {
    Console.WriteLine("null");
  }
}

Output:

0e9af10abdb7cd7119a85967272e3bc3

Wieso kommt da was anderes raus und wie kann ich das nun auch in Java umsetzen? (Der C#-Code gibt die richtige Lösung!)

Danke schon einmal im Voraus!

Links die Helfen können:

  • https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/Session-ID_deutsch_13Nov18.pdf
  • https://www.baeldung.com/java-md5 (etwas alt)
  • https://www.youtube.com/watch?v=hW2s03abGaI
  • https://codedocu.de/...
Computer, programmieren, Java, C Sharp, Encoding, Informatik, Verschlüsselung

Meistgelesene Beiträge zum Thema Programmieren