![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam,
na wstępie kilka uwag. 1. Nie wiem czy wybrałem dobre subforum - w razie czego proszę o przeniesienie tematu na odpowiednie. 2. Wiem, że to forum PHP ale równocześnie wiem, że jest tu kilku programistów Java i to do nich kieruję swój post. Więc. Na zaliczenie mam napisać program w Javie. Wymyśliłem sobie, że będzie to program do wykonywania poleceń SQL - ręcznie wpisujemy np. SELECT... i program wyświetla nam rezultat zapytania. Na razie mam takie pliki: Main.java - odpala cały program DbConnection.java - docelowo ma wykonywać operacje na bazie (na razie wersja minimalistyczna) main_window/MainWindow.java - główne okno programu. Aktualnie zawiera menu (main_window/MainMenuBar.java) oraz pasek statusu (main_window/MainStatusBar.java). connection_window/ConnectionWindow.java - okienko do podania danych do połączenia (dojdzie jeszcze wybór typu bazy danych). Wywoływane z MainWindow spod klasy wewnętrznej ConnectAL. query/QueryField.java - pole do wpisywania zapytań SQL zawierające przechwytywanie wciśniętych klawiszy i odpowiednie reakcje przy strzałce w górę/dół i przy wciśnięciu [ENTER]. Dodatkowo zawiera obiekt query/QueryMemory.java przetrzymujący X ostatnich zapytań SQL. Ok, teraz w czym problem. Otóż z tego co się orientuję to to okienko ConnectionWindow powinno ustawiać się na środku okna z którego zostało wywołane. Aktualnie ustawia się w lewym górnym rogu. Coprawda parametry przekazywane są poprawnie (do okna głównego) ale obawiam się czy w przyszłości nie spotka mnie jaka niespodzianka. Druga sprawa to taka, że w zasadzie wszędzie korzystałbym z singletona. Aktualnie właśnie to okienko do połączenia jest w formie singletona - nie wiem czy to dobre rozwiązanie ale chociaż działa ![]() Trzecia sprawa: do okna głównego planuję dołożyć obiekt QueryField oraz JTable do wyświetlania rezultatów zapytań. Tyle tylko, że QueryField przechwytuje [ENTER] i wtedy powinien wykonywać zapytanie. Do tego potrzebuje DbConnection - na szczęście jest to singleton więc luz. Ale co z wyświetleniem rezultatu? Przecież obiekt tabeli będzie się znajdował w oknie głównym. Znowu singleton żeby go zaktualizować? Coś za dużo singletonów mi się tu rodzi... Ogólnie prosiłbym o spojrzenie na te kody i wytknięcie wszystkich błędów oraz, co najważniejsze, czy to będzie działać jak planuję ![]() Źródła: http://phpworkstation.com/src.zip Z góry naprawdę wielkie dzięki! pion |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Singletony są złe.. Rozwiąż ten problem przekazując instancje tego, czego potrzeba tam gdzie trzeba. Być może przydatne będzie stworzenie czegoś w stylu "konktekstu".
W przypadku gdy korzystasz z JInternalFrame/JDesktopPane możesz ustawić pozycję "ręcznie". Sposób na centrowanie JFrame, który zachowa się tak samo w przypadku JInternalFrame (wystarczy zmienić screenSize na rozmiar desktop pane'a). Kod Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int top = (screenSize.height - windowSize.height) / 2; int left = (screenSize.width - windowSize.width) / 2; setLocation(left, top); -------------------- Łukasz Dywicki
Independent Java and open source software consultant. Blog - Java, OSGi, integracja oprogramowania.. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Dzięki za odpowiedź, Mam nadzieję, że wszystko będzie działalo (byle działo bo nie mam za dużo czasu aby bawić się w dopracowywanie całości) i że nie okaże się nagle, że jakiś obiekcik nie ma możliwości komunikacji z innym.
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:42 |