Portal > Foren > Java > Desktop-Applikationen und Grafik > Pixel OS abhängig
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 07.07.2005, 09:18 Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard Pixel OS abhängig

Ist es euch schonmal aufgefallen, wenn man in Beispielsweiße Windows 2000 ein JFrame mit sagen wir mal 170 x 160 Pixeln erstellt und dieses Perfekt von der Darstellung her passt, es auf einen anderen OS ganz anders ausschauen kann!? Für Windows XP bräuchte ich dann ca. ne Auflösung von 185 x 175 um alles korrekt darzustellen und damit nicht die hälfte verdeckt wird. Weiß jemand wie man das umgehen kann?
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 10:30 Nach oben    #2
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Welchen LayoutManager verwendest du denn?
Das die Darstellung von OS zu OS anders ist, ist völlig normal.
Zum einen könnte eine andere VM installiert sein, ansonsten hat JEDES OS auch noch andere Widgets (zum Beispiel Rahmen, Titelleiste, etc.)
Wenn du aber dem Frame mit .setSize(width, height) eine größe zuweist, so wird die ÄUSSERE Größe bestimmt, also inklusive Rahmen und Titelleiste, nicht die innere Größe (also nicht die Größe des ContentPane).


Gruß
Sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 10:35 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

Is egal, welches Layout, kommt bei jedem vor (FlowLayout, BorderLayout, GridLayout, ...).

Kann man die "Innere"-Größe auch setzen? Mach das nämlich tatsächlich mit setSize(int, int);
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 10:53 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.161
Standard

Dann lass das mit setSize sein.
Dafür gibt es doch die LayoutManager... nimm "pack" anstelle von "setSize".
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 10:57 Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

"pack"!? Hab ich noch nie gehört :confused: . Aber danke, werd ich mir mal anschauen!
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 11:02 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

"pack"!? Hab ich noch nie gehört :confused: . Aber danke, werd ich mir mal anschauen!

[edit] pack minimiert mir das aktuelle Fenster bis auf die Leiste!? Muss ich vorher noch was aufrufen?
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 11:05 Nach oben    #7
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

mit .pack() ändert der Layout-Manager die Größe des Frames selbstständig so ab, dass sie optimal an die enthaltenen Komponenten angepaßt ist.


EDIT:
Du mußt natürlich schon vorher Komponenten adden.
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 11:12 Nach oben    #8
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

Aaaaaaaaahhhhhhhhh! Hab gedacht das geht scho im Nachhinein. Jetzt hab ich nur ein anderes Problem. Ich adde meinem JPanel (BorderLayout) in der Mitte eine classe die von JPanel erbt und eine Grafik (Graphics2D) darstellt. Diese wird aber nicht vollständig angezeigt, sondern nur ein kleiner Ausschnitt von ihr. Was kann ich da machen?
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 11:36 Nach oben    #9
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Eine einfache Grafik?
So eine Art Splashscreen beim start des Programms?

Verwende doch einfach kein eigenes JPanel sondern adde ein JLabel mit ICON und sonst nichts im CENTER.
Schau dir mal JLabel und das dazugehöroge Icon an. Sollte helfen.
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 11:42 Nach oben    #10
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

Irgendwie check ich grad net so ganz was du meinst :confused: . Hab das Ding ma anstelle von JPanel von JLabel erben lassen und jetzt wird das Label gar net mehr angezeigt.
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 12:41 Nach oben    #11
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Also wenn ich das richtig verstehe tust du folgendes:

ein JFrame (frame) anzeigen.
frame hat ein BorderLayout.
Dann hast du ein JPanel (panel), dass du frame.add(panel, BorderLayout.CENTER) addest.
Willst du damit nur ein Bild anzeigen? Dann brauchst du das nicht extra zeichnen. Man kann einem JLabel (also einem Text) ein Icon voranstellen.
Wenn du also statt dem panel in etwa folgendes Tust:

(Achtung! Ich habe keine API hier, der Syntax ist garantiert falsch! Ich hoffe das Ding heißt wirklich Icon, ich schau mir das heute Abend noch mal genau an)

Icon icon = new Icon("meinBild.png");
JLabel label = new JLabel("");
label.setIcon(icon);
frame.add(label, BoderLayout.CENTER);

Wie gesagt, der Code ist falsch! Soll nur ein Ansatz sein. Ich schaue es mir heute Abend nochmal an.
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 12:49 Nach oben    #12
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

Nä, is kein Bild das ich anzeigen will. Is ein Spielfeld für ein Spiel, das in gewissen Abständen anders neu gezeichnet wird. Außerdem ist der Thread mehr allgemein gehalten . Weißt du wie ich das machen könnte? Das JPanel ignoriert nämlich setSize sowie setBounds. Hab gedacht ich könnte so vielleicht dem Panel ne größe zuweißen
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 13:15 Nach oben    #13
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.161
Standard

Nimm "setPreferredSize"
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.07.2005, 13:32 Nach oben    #14
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 559
Standard

Wunderbar! So funktionierts! Herzlichen Dank!
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
x und y Wert nach Pixel umrechnen Byrel Gesuche 7 22.11.2006 17:57
JSlider abhängig voneinander sheini Desktop-Applikationen und Grafik 1 21.10.2005 16:12
Ernährung der Menschheit von Bestäubern abhängig - in Gefahr Ben Plauderecke 1 22.08.2005 23:35


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45