Ich entwickle ein Spiel in Java Swing. Ich verwende absolute Coords und eine feste Fenstergröße, um jedes Element an seine Stelle zu setzen. Aber wenn ich den JFrame skaliere, skalieren die gezeichneten Elemente nicht. Wie kann ich das erreichen? In meinem Beispiel würde ich die Standardfenstergröße auf 1280 x 720 einstellen und das Spiel entsprechend dieser Größe entwickeln. Dann wäre es perfekt, wenn java die Größe der Elemente automatisch ändert.Java Swing Ändern der Größe von JFrame und JPanel mit allen gezeichneten Elementen
Antwort
Wenn Sie ein Fenster mit fester Größe wünschen, können Sie die JFrame.setResizable (boolean) API verwenden, um Ihr Fenster in der Größe veränderbar zu machen. Beispiel:
public class FixedSizeJFrame
{
public static void main(String[] args)
{
JFrame frame = new JFrame("My Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 1280, 720);
frame.getContentPane().add(new JLabel("My Label"), BorderLayout.NORTH);
frame.getContentPane().add(new JTextArea("Sample text"), BorderLayout.CENTER);
frame.setResizable(false);
frame.setVisible(true);
}
}
Als Benutzer möchte ich nur darauf hinweisen, wie sehr ich nicht veränderbare Fenster hasse - Ihr Code berücksichtigt auch nicht die möglichen Unterschiede in den Schriftmetriken. DPI; Bildschirmauflösungen, auf denen der Code möglicherweise ausgeführt werden muss, was die Wahrscheinlichkeit der Benutzerakzeptanz und Benutzerfreundlichkeit weiter verringert – MadProgrammer
True. Aber ich wollte nur demonstrieren, wie setResizable() verwendet wird. –
- 1. Java Swing: Größe von JPanel mit Bild ändern
- 2. Refresh JFrame? Java Swing
- 3. Java- - Größe ändern JFrame verpackt
- 4. Java ersetzen JFrame mit JPanel
- 5. Swing: JFrame Inhalt Bereich Größe
- 6. JAVA Set Maximale Größe von JFrame
- 7. Ändern JPanel Größe über JButton
- 8. Java Swing/JFrame Hörer
- 9. Java JPanel JFrame bekommen Höhe und Breite
- 10. Ändern Sie JFrame (ohne Layout) zu JPanel
- 11. JPanel vs JFrame in Java
- 12. Java Swing - JPanel und GridLayout Seitenränder/Padding
- 13. Repaint() JFrame und JPanel
- 14. Größe eines Jframe im Jpanel-Programm festlegen?
- 15. Java Swing GridBagLayout Panel Probleme die Größe
- 16. Java Swing, wie JLabel Größe zu beheben
- 17. Grundlegende Java Swing JFrame Repainting
- 18. java swing JFrame Größe kehrt Dimension größer als Bildschirm
- 19. Wie setze ich Buttons und Canvas in jframe? (Java Swing)
- 20. Zeichnen über ein JPanel und Hinzufügen der JPanel zu JFrame
- 21. Aufruf java swing JFrame von JavaFX Fenster
- 22. Java Swing - Ändern von GridBagConstraints
- 23. Hinzufügen von JPanel zu JFrame
- 24. Machen Sie Tasten Split JPanel - Java Swing
- 25. Make dynamisches Layout Java Swing
- 26. Java Swing - wie Bild in Norden von Jpanel hinzufügen
- 27. JFrame-, JPanel- und Gridlayout-Probleme
- 28. Greifen Sie jframe aus einer anderen Funktion und fügen Sie jpanel hinein - Java Swing
- 29. Video Swing JPanel Innerhalb von SWT View
- 30. Einstellen der Größe eines JPanel
"Ich benutze absolut coords" - nicht. Verwende [Layout Manager] (https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – c0der
* "Ich benutze absolute Coords und eine feste Fenstergröße, um jedes Element an seine Stelle zu setzen. Aber wenn ich die Größe des JFrames ändere, skalieren die gezeichneten Elemente nicht "* - Ja, genau das machen Layout-Manager für Sie, aber wenn Sie das Rad neu erfinden wollen, müssen Sie es manuell machen Sie selbst und entwickeln Sie eigene Ideen über die Beziehung zwischen Komponenten und wie sie auf Änderungen in der Größe des Containers reagieren, wie Raum übrig bleibt und was zu tun ist, wenn der verfügbare Platz zu klein für die Komponenten – MadProgrammer
ist Oder Sie könnte die API verwenden, die entwickelt wurde, um die meisten dieser Probleme für Sie zu lösen. Pixel perfekte Layouts sind eine Illusion, zu viele Dinge brechen sie; verschiedene Schriftmetriken; DPI; Bildschirmauflösungen; Videotreiber; Zeit, über sie hinwegzukommen. Konzentrieren Sie sich stattdessen auf den Benutzerfluss und die Interaktion – MadProgrammer