Automatyczne pozycjnowanie

0

Witam, stworzyłem program w Java Application (NetBeans), którym znajduje się kilka przycisków, rysowanie itp.

Rysuje przy pomocy
g2d.drawImage(obraz,115,0,null);

A przyciski ustawiam poprzez
button.setBounds(30, 490, 80, 20);

Wydaje się wszystko ok. Program rysuje obiekty we współrzędnych opartych na x i y.
Lecz przy powiększaniu okna lub maksymalizacji, obiekt pozostaje w tym samym miejscu a chciałbym żeby był wyśrodkowany.
Czy jest jakas funkcja odpowiedzialna za to?

Pozdrawiam.

0

Jest:

window.addComponentListener(new ComponentListener() {

    public void componentResized(ComponentEvent e) {
        // Tu wstawiasz nową pozycję
    }

    public void componentMoved(ComponentEvent e) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void componentShown(ComponentEvent e) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void componentHidden(ComponentEvent e) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
});

Jednak dużo lepszym pomysłem jest używanie LayoutManager.

0

Takie coś to jednak droga przez mękę. Naucz się jakiegoś zarządcy rozkładu lub GUI rób w edytorze NetBeans. Lepsze już kod spaghetti, który zrobi Ci kreator niż pozycjonowanie na sztywno.

0

Nie wiem czy polecanie początkującym tego czegoś z NetBeans to dobry pomysł. Co do menadżerów polecam MiGLayout -> http://www.miglayout.com/, lepszy od tych standardowych i co ważne dla początkujących łatwiejszy od GroupLayout.

0
Zonix napisał(a)

Nie wiem czy polecanie początkującym tego czegoś z NetBeans to dobry pomysł.

Wcale tego nie poleciłem, podałem mniejsze IMHO mniejsze zło.

0

Kreator? Mam już gotowy program zrobiony a nie jest on wcale taki malutki (700linii) więc robienie tego w kreatorze nie interesuje mnie.

Co do kodu, który podał mi Zonix? Powinienem go umieścić w ActionListenerze? I jaką pozycję mam wstawić zamiast Twojego komentarza? Bo w zasadzie pozycja ma być dynamiczna więc...

0
MarcinUser napisał(a)

Kreator? Mam już gotowy program zrobiony a nie jest on wcale taki malutki (700linii) więc robienie tego w kreatorze nie interesuje mnie.

Co do kodu, który podał mi Zonix? Powinienem go umieścić w ActionListenerze? I jaką pozycję mam wstawić zamiast Twojego komentarza? Bo w zasadzie pozycja ma być dynamiczna więc...

pozycje musisz wyliczyc na podstawie nowej wielkosci okna

0
MarcinUser napisał(a)

Powinienem go umieścić w ActionListenerze?

Nie, obok :)

MarcinUser napisał(a)

I jaką pozycję mam wstawić zamiast Twojego komentarza? Bo w zasadzie pozycja ma być dynamiczna więc...

wzór by wyglądał tak:
pozycja = (wielkość okna - wielkość przycisku) / 2

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