Veröffentlicht 3. März 200916 j 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.
3. März 200916 j 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 .
3. März 200916 j 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());
3. März 200916 j 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
3. März 200916 j VMware emuliert einen Computer. D.h. du musst dir VMware (oder ähnliche Programme) holen und dann darauf, wie auf einem normalen PC, Mac installieren.
4. März 200916 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.