Temat: Fakturomat
Jestem pod wrażeniem szybkości powstawania tej aplikacji biorąc pod uwagę, że naukę Javy dopiero rozpoczynasz. Postępy na prawdę szybkie :)
Tak się prezentuje w zdefiniowanym przez Ciebie minimalny rozmiarze na Ubuntu:
Na kwestie uniwersalności swing'a też się naciąłem. U mnie to było chyba nawet bardziej odczuwalne, gdyż przełączałem na natywny lookAndFell dla danego systemu. W windows mieściłem się w 800x600, a po odpaleniu na ubuntu 1024x768 było na styk. W windowsie czcionki są mniejsze i stąd rozpychanie GUI pod linuxem.
Andrzej K.:
Pliki PDF są zapisywane w folderze PDF w katalogu, gdzie znajduje się program. Przynajmniej pod Windowsem. Zresztą takie rzeczy będą opisane w helpie.
Pod linux'em właśnie niekoniecznie. Miałem to samo. Apikacja pod windows zapisywała w katalogu z jar'em, jednak na linuxie zawsze zapisywało w głównym katalogu user'a. A przynajmniej po kliknięciu w jar'a niezależnie od tego, gdzie go umieściłem. Jeśli uruchamiałem z konsoli przez "java -jar program.jar", wtedy zapisywało w katalogu, w którym znajdowałem się podczas wpisywania tej komendy. Twój program aktualnie zapisuje w ten sam sposób. Jako kompromis, przyjąłem zapisywanie w katalogu user'a w ukrytym podkatalogu. Ścieżkę w javie uzyskuję w ten sposób:
System.getProperty("user.home") + File.separator + ".podkatalog";
I od razu widać, że w kwestii separatorów lepiej używać File.separator.
Trafiły mi się dwa błędy w trakcie użytkowania, więc przekazuję info:
Gdy na start dodałem klienta i spróbowałem wyświetlić jego listę faktur, otrzymałem wyjątek:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at fakturomat.EkrFaktury.MakeTable(EkrFaktury.java:227)
at fakturomat.EkrKlienci.actionPerformed(EkrKlienci.java:267)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
...
Po dodaniu faktury, opłaceniu i kliknięciu w podgląd:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at ctrl.Sys.GetSlownie(Sys.java:92)
at fakturomat.AboutFak.<init>(AboutFak.java:193)
at fakturomat.EkrFaktury.actionPerformed(EkrFaktury.java:264)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
...
Po restarcie nadal taki sam wyjątek, więc do podglądu nie mogę się na razie dostać. Mam przeczucie, że przyczyną drugiego może być separator części dziesiętnych w kwotach. Używam anglojęzycznego systemu operacyjnego i także w moim programie separatory na windows i linux są różne.
Andrzej K.:
[...] Najgorsza jest ta różnica międzysystemowa, z czym będzie problem, bo mam tylko Windowsa.
A mówili, że Java jest taka uniwersalna ;)
Początkowy slogan "Write Once, Run Anywhere" z czasem został przerobiony na "Write Once, Debug Everywhere" przez rosnącą frustrację developer'ów ;)
Tomek Gubała edytował(a) ten post dnia 20.03.11 o godzinie 12:22