ShamaN Geschrieben 3. März 2009 Geschrieben 3. März 2009 Hi, Ich habe eine relativ großes Programm geschrieben, welches jetzt auch unter Mac laufen soll. Ich hab das bisher unter Windows geschrieben. Da ich leider keinen Mac zur verfügung habe würde ich gern wissen ob es eine art simulator für Mac gibt, den ich nutzen könnte ob mein Programm funktioniert. Weiß dazu jemand etwas? Außerdem habe ich gelesen, dass wenn man Swing benutzt ein paar Anpassungen vornehmen muss, welche wären das? Hab dazu bisher leider keine ordentliche Seite gefunden. Zitieren
Aldimann Geschrieben 3. März 2009 Geschrieben 3. März 2009 Ich hab sowas noch nie Probiert, aber ich würde mir einfach eine Virtuelle Maschine (bspw. VMware) drauf machen Mac installieren mit java usw. und testen . Zitieren
klomann Geschrieben 3. März 2009 Geschrieben 3. März 2009 Java ist doch plattform unabhängig.. wenn du keine c-bibliotheken die nur für windows geignet sind benutzt hast, dann wird das laufen. anpassungen musst du nur vornehmen wenn du willst, das dein java programm wie ein normales mac, windwos ect. programm aussieht. das machst du mit UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); Zitieren
ShamaN Geschrieben 3. März 2009 Autor Geschrieben 3. März 2009 naja also ich hab jetzt String lcOSName = System.getProperty("os.name").toLowerCase(); boolean IS_MAC = lcOSName.startsWith("mac os x"); if(IS_MAC == true) { System.setProperty("apple.laf.useScreenMenuBar", "true"); //System.setProperty("com.apple.mrj.application.apple.menu.about.name", "WikiTeX"); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } System.setProperty("com.apple.macos.smallTabs", "true"); } angefügt in der Hoffnung dass jetzt auch die MenüItems richtig angezeigt werden. Außerdem habe ich Informationen aus und in Textdateien gelesen etwa so: BufferedWriter out = new BufferedWriter(new FileWriter("speicher.txt")); Kommt da nicht native Code zum Einsatz? Funktioniert das dann auch unter Mac? Und die Funktion public void centerWindow(Window window) { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = window.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } window.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); } wirft auch keine Fehler aus? VMware hab ich nichts für Mac auf Windows gefunden Zitieren
Aldimann Geschrieben 3. März 2009 Geschrieben 3. März 2009 VMware emuliert einen Computer. D.h. du musst dir VMware (oder ähnliche Programme) holen und dann darauf, wie auf einem normalen PC, Mac installieren. Zitieren
speedi Geschrieben 4. März 2009 Geschrieben 4. März 2009 BufferedWriter out = new BufferedWriter(new FileWriter("speicher.txt")); Kommt da nicht native Code zum Einsatz? Funktioniert das dann auch unter Mac? Natürlich kommt da nativer Code zum Einsatz. Aber da der FileWriter eine Klasse der Java API ist und diese auch für MAC-OS portiert wurde wird der ClassLoader schön brav die Klasse aus dem installierten JAVA-Paketen laden. Und das ist dann natürlich nicht die Klasse für Windows sondern die für MAC. Die beiden Klassen sind wahrscheinlich sogar vom Quellcode her identisch, nur das Windows über JNI ne DLL einbindet und Mac irgendwas anderes. Generell sollten Swing-Programme überall gleichermaßen funktionieren (vorausgesetzt der Platz auf dem Bildschirm reicht aus). Da bei Swing alles gezeichnet wird ist das absolut unkritisch. Wenn du jedoch SystemLookAndFell verwendest kann es mitunter Probleme geben, da einige Komponenten breiter oder höher sind und die Schriftarten andere sind und dadurch vielleicht der ein oder andere Button nicht mehr lesbar ist. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.