Zmiana wyglądu okna głównego pomocy

0

Witam jestem w trakcie tworzenia aplikacji. I mam taki problem chciałbym zrobić żeby po naciśnięciu np. na menu np. zrób test zmieniał się widok w głównym oknie aplikacji. Tak zeby nie tworzyć osobnych ramek. Byłbym wdzięczny o jakieś podpowiedzi.

pozdrawiam

0

Usuń obiekty z contentPane przez np. removeAll i wstaw tam odpowiednie inne. Najprościej to wykonać zamieniając ze sobą całe panele z gotową już zawartością. Zmianę można poprzedzić wywołaniem setVisible(false) dla usuwanych elementów i setVisible (true) dla nowych po ich wpięciu w okno.

0

Jak napisał @Olamagato przygotuj całe panele, na początku umieść w oknie panel startowy, a potem

remove(oldPanel);
add(newPanel);
validate();
repaint();
0

Dziękuje !

0

A może użyj CardLayout do podmiany paneli:

http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

0

Kurcze a możecie mnie poratować jakimś przykładem większym.
Bo np. mam

picture = new ImageIcon(picturePath+imageFileName);
JLabel pictureLabel = new JLabel(picture);
this.getContentPane().add(pictureLabel);
pack();

W oknie głównym aby logo bylo. I chce nacisnąc przycisk w toolbarze np. wyswietl tabele. I jak to usunąć. Proszę o przyklad bo mi nie wychodzi.

0

Tu masz przykład użycia layoutu CardLayout:

package layout;

import javax.swing.*;
import java.awt.*;

public class CardLayoutDemo {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                CardLayoutFrame frame = new CardLayoutFrame();
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

**********************************************************************************

package layout;

import javax.swing.*;

/**
 * Author: Daniel
 */
public class CardLayoutFrame extends JFrame {
    public CardLayoutFrame() {
        FramePanel framePanel = new FramePanel();
        add(framePanel);
    }
}

**********************************************************************************

package layout;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

/**
 * Author: Daniel
 */
public class FramePanel extends JPanel {

    public final static String BUTTONPANEL = "Card with JButtons";

    public final static String TEXTPANEL = "Card with JTextField";

    CardLayoutPanel cl;

    public FramePanel() {
        initializeComponents();
    }

    private void initializeComponents() {
        cl = new CardLayoutPanel();

        JPanel comboBoxPane = new JPanel();
        String comboBoxItems[] = {BUTTONPANEL, TEXTPANEL};
        JComboBox cb = new JComboBox(comboBoxItems);
        cb.setEditable(false);
        cb.addItemListener(new ComboBoxListener());
        comboBoxPane.add(cb);

        add(cl);
        add(comboBoxPane, BorderLayout.PAGE_START);
    }

    class ComboBoxListener implements ItemListener {
        @Override
        public void itemStateChanged(ItemEvent e) {
            CardLayout layout = (CardLayout) cl.getLayout();
            layout.show(cl, (String) e.getItem());
        }
    }
}

**********************************************************************************

package layout;

import javax.swing.*;
import java.awt.*;

/**
 * Author: Daniel
 */
public class CardLayoutPanel extends JPanel {

    private final static String BUTTONPANEL = "Card with JButtons";

    private final static String TEXTPANEL = "Card with JTextField";

    public CardLayoutPanel() {
        setUpPanel();
        initializeComponents();
    }

    private void setUpPanel() {
        setLayout(new CardLayout());
    }

    private void initializeComponents() {
        JPanel card1 = new JPanel();
        card1.add(new JButton("Button 1"));
        card1.add(new JButton("Button 2"));
        card1.add(new JButton("Button 3"));

        JPanel card2 = new JPanel();
        card2.add(new JTextField("TextField", 20));

        add(card1, BUTTONPANEL);
        add(card2, TEXTPANEL);
    }
}

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