Rysowanie JPanel na JFrame

2013-04-08 16:16

Rejestracja: 9 lat temu

Ostatnio: 1 godzina temu

0

Witam. Mam JFrame, na którym mam jakieś buttony, obrazki itp. Jeden button ma za zadanie zmienić cały obszar programu, więc zrobiłem tak, że po kliknięciu tego przycisku rysowany jest nowy JPanel:

JButton btnNewButton_2 = new JButton("Szukaj krok po kroku");
btnNewButton_2.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent arg0)
    {
        Producent p = new Producent();
        getContentPane().add(p);
        p.setBounds(0, 80, 800, 520);
        p.setVisible(true);
        pack();
    }
});

Mam jednak pewien problem bo na tym JFrame jest na samej górze logo, które chciałbym pozostawić, dlatego daje p.setBounds(0, 80, 800, 520); . Jednak JPanel się nie rysuje.

edytowany 5x, ostatnio: furious programming, 2013-04-08 17:39

Pozostało 580 znaków

2013-04-08 20:15

Rejestracja: 9 lat temu

Ostatnio: 1 godzina temu

0

Pomoże ktoś?

Pozostało 580 znaków

2013-04-08 21:53

Rejestracja: 9 lat temu

Ostatnio: 6 lat temu

0

A jakiego layout managera używasz?

Pozostało 580 znaków

2013-04-08 23:05

Rejestracja: 9 lat temu

Ostatnio: 1 godzina temu

0

Absolute.

Pozostało 580 znaków

2013-04-08 23:57

Rejestracja: 9 lat temu

Ostatnio: 6 lat temu

0

To trochę słabo. Powinieneś używać layout managerów, gdyż znacznie ułatwiają życie (chyba, że nie możesz). Tu masz tutorial http://docs.oracle.com/javase[...]ial/uiswing/layout/index.html. Tu najlepiej nadawałby się CardLayout. A Twój nowy panel nie pojawia się dlatego, że dodajesz go używając metody add(Componenet comp). Szybki wgląd w dokumentację: (http://docs.oracle.com/javase[...]s/api/java/awt/Container.html)

Components added to a container are tracked in a list. The order of the list will define the components' front-to-back stacking order within the container. If no index is specified when adding a component to a container, it will be added to the end of the list (and hence to the bottom of the stacking order).

Czyli innymi słowy Twój panel jest dodawany do ramki, ale jest przesłonięty przez wcześniej dodane komponenty.

Pozostało 580 znaków

2013-04-09 22:25

Rejestracja: 9 lat temu

Ostatnio: 1 godzina temu

0

To czym go dodać jak nie add?

Pozostało 580 znaków

lemmiwink_
2013-04-10 11:02
lemmiwink_
0

add(Component comp, int index)
http://docs.oracle.com/javase/6/docs/api/java/awt/Container.html#add(java.awt.Component, int)

Pozostało 580 znaków

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