Fenster wieder unsichtbar machen

Java4win

Aktives Mitglied
Hey Leute,

Das Programm macht im Grunde kein Sinn aber ich wollte dennoch einfach nur etwas testen.

Das Programm soll abfragen, hoch und breit ein Fenster sein soll. Dann kommt eine zweite Abfrage, bei dieser wird ein zweites mal die Höhe abgefragt und wenn diese ungleich der ersten Höhe ist soll das Fenster wieder unsichtbar werden....

Nur das letzte tut es leider nicht.

Main Klasse:

Java:
    public static void main (String[]args){
       
       
        int hoehe = Integer.parseInt(JOptionPane.showInputDialog("Wie hoch soll das Fenster sein ? "));
        int breite = Integer.parseInt(JOptionPane.showInputDialog("Wie breit soll das Fenster sein ? "));
       
        Frame frame = new Frame(breite, hoehe);
       

        int hoehe2 = Integer.parseInt(JOptionPane.showInputDialog("Wie hoch soll das Fenster jetzt sein ? "));
       
      
      
        if (hoehe2 != hoehe){
           
            frame.setSichtbarkeit(false);
           
        }
       
       
       
    }

setSichtbarkeit ist einfach nur eine Methode, welche die Sichtbarkeit in dem Konstruktor der Frame Klasse auf false dann setzt.

Ich kann mir vorstellen, dass dies nicht funktioniert da der Konstruktor am Anfang der Main Klasse nur einmal aufgerufen wird und danach nicht wieder, aber ich bin mir auch nicht sicher🙂
 
Richtig ist, dass man dazu die Klasse Frame sehen müsste. Ich habe mich mal daran versucht, vielleicht kannst du den Code ja mal vergleichen. Bei mir klappt es jedenfalls einwandfrei (damit man auch was sieht, habe ich den Code ein bisschen erweitert).

Java:
package test;

import javax.swing.JOptionPane;

public class Main {

   public static void main (String[]args){

       int hoehe = Integer.parseInt(JOptionPane.showInputDialog("Wie hoch soll das Fenster sein ? "));
       int breite = Integer.parseInt(JOptionPane.showInputDialog("Wie breit soll das Fenster sein ? "));

       Frame frame = new Frame(breite, hoehe);
       int hoehe2 = Integer.parseInt(JOptionPane.showInputDialog("Wie hoch soll das Fenster jetzt sein ? "));
       if (hoehe2 != hoehe){
           frame.setSize(breite,hoehe2);
           frame.setSichtbarkeit(false);
       }

       int hoehe3 = Integer.parseInt(JOptionPane.showInputDialog("Wie hoch soll das Fenster jetzt sein ? "));
       if (hoehe3 == hoehe2){
           frame.setSichtbarkeit(true);
       }

       try {

           Thread.sleep(5000);

       } catch (InterruptedException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       System.exit(0);
   }
}

Java:
package test;

import javax.swing.JFrame;

public class Frame extends JFrame {
   Frame(int breite, int hoehe) {
       this.setSize(breite, hoehe);
       this.setVisible(true);
   }

   void setSichtbarkeit(boolean sichtbarkeit) {
       this.setVisible(sichtbarkeit);
   }
}
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben