von großem Panel auf ein kleines Panel mappen

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,


ich habe (wahrscheinlich ein bescheuertes) Problem.
Auf einem großem Panel (1024*768) befinden sich Buttons (z.B. mit den Koordinaten 100/200 und 150/200 mit einer width von 50).
Jetzt möchte ich hergehen und dieses JPanel in ein kleineres Umwandeln (100* 80) und die Button auf diese kleinere Panel platzieren. Dabei sollte die Größe der Komponenten gleich bleiben aber die Position sollte im Verhältnis ca. die Gleiche sein, wie auf dem Großen Panel,

Weiß jemand einen Algorithmus, wie ich mir die Koordinaten auf dem kleinen Panel anhand der Koordinaten der Button auf dem großen Panel ausrechnen kann?
 
Ein LayoutManager arbeitet nicht mit festen Koordinaten sondern mit den Standarddimensionen der GUI-Komponenten. LayoutManager verfolgen jeweils eine andere Strategie, wie Komponeten angeordnet werden.
Bei einer Größenänderung eines Fensters passen sich Position und Größe der Komponenten im Fenster "von allein" an die bereit gestellte Größe an und richten sich gemäß der Anordnungsstrategie im Fenster aus.

Es wird also nichts "gemappt" sondern es werden die Platzberhältnisse berechnet und verteilt.
Du musst also einen oder mehrere (über JPanels verschachtelt) LayoutManager für deine Container wählen, die die Platzverteilung und Anordnung deiner Komponenten für deinen Zweck am besten erledigen.

Java bringt bereits 5 LayoutManager mit. Das Wissen über die Funktionsweisen der LayoutManager ist unerlässlich, wenn man ordentliche, stabile und flexible GUIs erstellen will.
 
Ich versteh nicht, was die Leute am Null-Layout finden.
Entweder man benutzt einen vorhandenen LayoutManager eventuell hilft hier GridBagLayout weiter, oder man schreibt sich seinen eigenen.
Anonymous hat gesagt.:
einen Algorithmus, wie ich mir die Koordinaten auf dem kleinen Panel anhand der Koordinaten der Button auf dem großen Panel ausrechnen kann
Und Größenverhältinisse auszurechnen ist wohl simpelste Mathematik. Mit z.B.:
buttonx_neu = panelbreite_neu/panelbreite_alt*buttonx_alt
erhält man die neue x-Koordinate relativ zur Panelgröße
 
Michael... hat gesagt.:
ist wohl simpelste Mathematik. Mit z.B.:
buttonx_neu = panelbreite_neu/panelbreite_alt*buttonx_alt
erhält man die neue x-Koordinate relativ zur Panelgröße

Dann müsste ich aber die Buttons auch relative zum größen Panel verkleinern, das hab ich aber oben angeführt dass das nicht sein soll, sonst hätte ich das auch alleine geschafft!!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben