Jaki obiekt ze swing-a do wyswietlania obrazka

0

Witam

Chciałem w projekcie wstawić obrazek(cos ala logo firmy/programu) eksperymentowałem z labelem ale kiepsko czyta mój obrazek tj wrzuca mi go w lewy górny róg labela a cały label robi się ogromny skalowanie nic nie daje nie wiedzieć czemu.

Dodatkowo żeby nie tworzyć nowego tematu:
Czy w tym idiotycznym netBeansie da się jakoś wyłączyć te automatyczne kotwiczenie obiektów w trybie design tak aby element był w tym miejscu aplikacji gdzie ja go postawie a nie wstawiam jeden przycisk dodaje drugi i nagle cała aplikacja sie ******* (psuje)

Z góry dziękuje za odpowiedz i PozDrawiam

0

Ad.2. proponuje zapoznać się z tym jak są kotwiczone obiekty w zależności od LayoutMangera. Bo to nie działa tak że tam gdzie sobie położysz tam będziesz miał (chyba ze ustawisz GroupLayout, bo tam mniej więcej tak t wygląda).

0

edytor GUI z NB (który jest idiotyczny wprost proporcjonalnie do debilizmu osoby która z niego korzysta) wykorzystuje właśnie groupLayouta przy rozkładaniu kontrolek.

Jeżeli chcesz mieć GUI w stylu "gdzie chce tam jest" zacznij je pisać z palca. Generalnie tak uzyskuje się lepsze efekty, jednak nakład pracy jest przy tym dużo większy.

A no i zapomniałem o tym Twoim rysowaniu. Jaki komponent?
Odpowiedź prosta - Component.

zrób swoją klasę, odziedzicz po Component nadpisz public void paint(Graphics g) i tam robisz g.drawImage(obrazek): Po problemie.
http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Graphics.html

0

Jeśli musisz korzystać z GUI Buildera to polecam Eclipse + Google Window Builder. On przynajmniej generuje w miare sensowny kod

0

stwórz klase dziedziczącą po JLabel'u. Np.

 
    class Lan extends JLabel {

        @Override
        protected void paintComponent(Graphics g) {
            try {
                super.paintComponent(g);
                Image img = ImageIO.read(new File("1.jpeg"));
                g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);            
            } catch (IOException ex) {
                Logger.getLogger(Practise.class.getName()).log(Level.SEVERE, null, ex);
            }            
        }        
    }
0

Jak dziedziczysz po JComponent to najlepiej jest nadpisywać metode paintComponent(Graphics g)

Obrazek możesz też wrzucić do JLabel.

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