Java GUI, a baza danych

0

Cześć

Proszę o pomoc przy problemie z javą. Mianowicie mam zbudować program w GUI, który będzie mi się łączyć z baza danych mysql i przy okazji jeszcze pobierać dane z pliku xml. Chcę się skupić na tym pierwszym. Napisałem program (graficzną), mam też kod tej bazy danych i właśnie mam problem z tą bazą. W programie mamy przycisk POŁĄCZ. Po jego kliknięciu program ma połączyć się z bazą, tekst przycisku zmienia się na ROZŁĄCZ, gdy znowu na niego klikniemy rozłącza z bazą. Nie wiem właśnie jak to zrobić. Mógłby ktoś pomóc trochę przy tym, jakaś rada czy coś? Czy to próbować w tej klasie co GUI, może tam gdzie baza i potem w niej wywołać tą klasę z gui? Z góry dziękuje i pozdrawiam.

Kod programów: http://pastebin.com/SUymMWRM

0

wywolac akcje po kliknieciu na przycisk, podczas ktorej zmieniasz setVisible(false) i w tym samym miejscu wstawiasz nowy przycisk, w ktorym tez robisz taka akcje, ze po kliknieciu sie chowa, a pojawia ten drugi przycisk.

2

Ja nie jestem doświadczonym programistą, ale uważam że stworzenie dwóch przycisków jest czystszym i bardziej przejrzystym rozwiązaniem, skoro każdy z nich ma inne zadanie, niż zmienianie mu tekstu, a później sprawdzanie jego wartości, żeby określić jaką akcję ma wykonać.

0

@Hepek masz mniej więcej pomysł na krótki kod takiego porównania?

0

Najprostsze rozwiązanie to stworzenie jak blab pisze dwóch przycisków, które będą wywoływać odpowiednią metodę klasy odpowiedzialnej za połączenie z bazą danych i wzajemnie się ukrywać/pokazywać. Będzie to jasna i prosta separacja na poziomie GUI. Oczywiście najlepiej jakbyś przygotował sobie odpowiedni komponent (oddzielną klasę), która zamknie w sobie te dwa przyciski.

Trudniejszą lecz bardzie elastyczną metodą jest wykorzystanie wzorca obserwatora. W takim układzie naciśnięcie przycisku będzie wywoływać odpowiedni kod wszystkich podpiętych do niego obserwatorów przekazując do nich informację o typie akcji. To co będą robić obserwatorzy mając informację co oznacza kliknięcie jest już ich prywatną sprawą. To rozwiązanie pozwoli ci na dodanie wielu różnych obserwatorów, którzy będą np. zarządzać elementami GUI, połączeniem z bazą danych czy kontrolować stan obiektów pobranych wcześniej. Jest to jednak metoda wymagająca trochę wprawy i obycia z Javą i nie polecam jej na początek.

0

Rozumiem, szukam w miarę takiego sposobu łatwego do zrobienia, a mam mały zastój przy tym. Myślałem nad tym, aby przy warunku: "if (polacz.isSelected())" sprawdzał program czy jest połączenie z bazą, ale nie wiem właśnie jak się dokładnie odwołać do tego stanu połączenia z bazy danych tamtej klasie.

0
glitcher napisał(a):

@Hepek masz mniej więcej pomysł na krótki kod takiego porównania?

Myślę, że klasa która inicjuje połączenie z bazą danych powinna udostępniać metodę typu isConnected() albo coś w tym stylu więc użyć jej i w zależności od wyniku wykonać połączenie lub je zamknąć :)

0

Co do tych przycisków nie dałoby się też przez ten warunek if (polacz.isSelected()) tych dwóch przycisków na zmianę wyświetlać? Dajmy na to: gdy przycisk połącz jest zaznaczony to automatycznie znika i ustawia też rozłącz jako widzialny, jednak wątpię w to troche.

0

Nie rozumiem co masz na myśli albo wydaje mi się, że pytasz o to co poradził Koziołek.

0

@Hepek jak mam rozumieć, metoda będzie zwracać wartości true albo false w przypadku połączenia lub nie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0