JFrame-Titelzeile



  • Hallo zusammen,

    Kann ich irgendwie abfragen, wie groß die Titelzeile eines JFrame ist (--> wo sich Buttons Schließen, Maximieren, Minimieren befinden)? Oder muss ich selbst eine Konstante hardcodieren ?

    lg
    kati



  • Ähh, was meinst du mit Größe? Fläche, Länge der x- bzw y-Achse?



  • Wenn ich mich nicht irre gibt "Insets" doch die grösse von Rahmen wieder.



  • Pogo schrieb:

    Ähh, was meinst du mit Größe? Fläche, Länge der x- bzw y-Achse?

    Fläche kann ich selbst berechnen, wenn ich die Höhe und Breite kenne 😉 Schau dir das Browserfenster an.... Oben solltest du BCBArena.de - forum stehen haben (oder was anderes, je nachdem, was du für ein Browser hast ;-)). Ich meinte sowas wie Dimension: width und height. Eigentlich hätte ich nur height gebraucht - die ist (bei Windows-Look and Feel) ca. 22 px groß (Schätzung).

    Stefan99 schrieb:

    Wenn ich mich nicht irre gibt "Insets" doch die grösse von Rahmen wieder.

    😕 Meinst du http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Insets.html ? Ich fürchte aber dass es in JFrame keine Methode wie getJMenuBar(), getContentPane() oder ähnliches gibt für die Titelzeile - versteht sich. Oder doch ? ... das habe ich gemeint.

    lg
    kati



  • Also ich lasse mich gerne verbessern, bin ja Anfänger und die dürfen das 🙄 , aber könnte das nicht so gehen?

    Insets insets = this.getInsets();

    int hohe = insets.top; //(top,bottom,right,left)



  • Stefan99 schrieb:

    Insets insets = this.getInsets();

    int hohe = insets.top; //(top,bottom,right,left)

    ... das kann doch nicht wahr sein... 😮 drücke ich mich wirklich so schlecht aus ? 😮 Nicht der obige Abstand des Fensters auf dem Bildschirm (top)! ja sicher... jede Komponente verfügt über Methoden wie getLocation(), getSize() etc... das habe ich nicht gemeint ! Wenn du jetzt mein Posting liest, siehst du ein Fenster - nämlich das Browserfenster - zB IE. Maximiere das Fenster, damit kein andere Fenster mehr zu sehen ist. Oberhalb der Menüleiste, wo sich Einträge wie "Datei", "Bearbeiten", "Ansicht", "Favoriten" etc. befinden, ist noch eine blaue Titelleiste (würde ich es mal nennen), in der steht: "BCBArena.de - forum - Microsoft Internet Explorer". Kann mir jemand sagen, wie ich ermitteln kann, wie hoch dieser blaue Teil ist ? Es muss doch eine Konstante oder so was geben. Außerdem (ist jetzt eine Annahme) - kann sich um ein Paar Pixel die Höhe ändern, wenn L&F der Anwendung geändert wird.
    Uff, es ist manchmal mühsam zu erklären was man eigentlich will - vor allem, wenn es um total einfache Dinge geht. 🙄

    kati



  • Weiss nicht, ob da der genaue Wert rauskommt, aber versuch doch mal:

    frame.getHeight() - frame.getContentPane().getHeight();

    Jockel



  • hi Jockel,

    so ginge es (hypothetisch). Nur das Problem ist es - solange man die Höhe und Breite des ContentPane nicht explizit festlegt, liefert getHeight() etc. immer 0 zurück. Es könnte aber so funktionieren (falls eine JMenuBar vorhanden ist), dass man die Location von JMenuBar abfragt. Somit wäre das Ergebnis:

    Point p = jmb.getLocation(); //jmb ist Instanz von JMenuBar
    int h = p.y;  //result
    

    Ich muss es aber noch ausprobieren.

    thx trotzdem
    lg
    kati


Anmelden zum Antworten