Add / Remove Panel

Status
Nicht offen für weitere Antworten.

chrissy

Bekanntes Mitglied
Hallo,

wie kann man es realisieren, dass ein und dass selbe Panel ein-/ und ausgeblendet wird. Beim Einblenden ist es aber möglich, daß sich die Eingabefelder in dem Panel ändern.
Ich habe es bisher so versucht:
Code:
  private void showStep2(int iSelect)
  {
    this.getContentPane().add(pnlStep2, 
                              new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, 
                                                     new Insets(0, 0, 0, 0), 100, 0));
    pnlStep2.setVisible(true);
    GridBagLayout layoutInput = new GridBagLayout();
    pnlStep2.setLayout(layoutInput);
    String[] comboSelect = {"Case1", "Case2", "Case3", "Case4", "Case5"};
    cboCase = new JComboBox(comboSelect);
    JLabel lblStep1 = new JLabel("<html>[b]<u>Step 2 - Fall-Unterscheidung</u>[/b]</html>");
    btnNext2 = new JButton("Go to Step 3 >");
    btnNext2.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent ae)
      {
       if (! pnlStep3.isShowing())
        showStep3();
      }  
    });
    btnBack2 = new JButton("< Back to Step 1");
    btnBack2.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent ae)
      {
        hideStep2();
      }  
    });
    pnlStep2.add(lblStep1, 
                 new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, 
                                        new Insets(0,0,10,0), 0, 0));
    pnlStep2.add(cboCase, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0, 
                               GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 2, 0), 70, 0)); 
    pnlStep2.add(btnBack2, 
                 new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, 
                                        new Insets(0,0,0,0), 0, 0));
    pnlStep2.add(btnNext2, 
                 new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, 
                                        new Insets(0,0,0,0), 0, 0));
    pnlStep2.setPreferredSize(new Dimension(100, 50));
    pnlStep2.validate();
  }
  
  private void hideStep2()
  {
    pnlStep2.removeAll();
    this.getContentPane().remove(pnlStep2);
    this.validate();
  }

Ich habe zwei Panels ... das zweite Panel wird per Button-Klick vom ersten Panel aufgerufen. Beim Klick auf den Button "Back" wird das zweite Panel entfernt und nur das erste Panel angezeigt (funktioniert anscheinend richtig). Wenn ich nun im ersten Panel wieder auf den Button "Next" klicke, soll Panel2 wieder angezeigt werden, im GridBagLayout in der Zelle daneben (das funktioniert nicht mehr). Panel1 bleibt mittig ausgerichtet im Layout und Panel2 legt sich darüber (eigentlich an der richtigen Stelle, nur Panel1 wird nicht an der richtigen Stelle angezeigt). Außerdem funktioniert der Button auf Panel2 nicht mehr (das Panel wird nicht mehr ausgeblendet).
Irgendwie steh ich auf der Leitung ...

Danke
chrissy
 

André Uhres

Top Contributor
chrissy hat gesagt.:
..Ich habe zwei Panels ... das zweite Panel wird per Button-Klick
vom ersten Panel aufgerufen. Beim Klick auf den Button "Back" wird das zweite Panel
entfernt und nur das erste Panel angezeigt..
Hier ist sowas ähnliches, vielleicht kannst du damit ja was anfangen:
Code:
/*
 * ShowHideDetailsDemo.java
 */
package layout;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class ShowHideDetailsDemo extends JFrame {
    public ShowHideDetailsDemo() {
        super("ShowHideDetailsDemo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        mainPanel = new JPanel();
        leftPanel = new JPanel();
        scrollingInfoPanel = new JScrollPane();
        infoPanel = new JPanel();
        summaryDetailPanel1 = new JPanel();
        summary1 = new JPanel();
        summaryLabel1 = new JLabel();
        detailButton1 = new JButton();
        detail1 = new JPanel();
        detailLabel1 = new JLabel();
        summaryDetailPanel2 = new JPanel();
        summary2 = new JPanel();
        summaryLabel2 = new JLabel();
        detailButton2 = new JButton();
        detail2 = new JPanel();
        detailLabel2 = new JLabel();
        addComponentListener(new ComponentAdapter() {
            public void componentResized(ComponentEvent evt) {
                formComponentResized(evt);
            }
        });
        getContentPane().add(mainPanel, BorderLayout.CENTER);
        leftPanel.setLayout(new BorderLayout());
        infoPanel.setBorder(new LineBorder(new Color(0, 0, 0)));
        infoPanel.setPreferredSize(new Dimension(150, 10));
        summaryDetailPanel1.setLayout(new BorderLayout());
        summaryLabel1.setText("Summary 1");
        summary1.add(summaryLabel1);
        detailButton1.setText("Detail");
        detailButton1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                detailButton1ActionPerformed(evt);
            }
        });
        summary1.add(detailButton1);
        summaryDetailPanel1.add(summary1, BorderLayout.CENTER);
        detailLabel1.setText("Detail 1");
        detail1.add(detailLabel1);
        summaryDetailPanel1.add(detail1, BorderLayout.SOUTH);
        infoPanel.add(summaryDetailPanel1);
        summaryDetailPanel2.setLayout(new BorderLayout());
        summaryLabel2.setText("Summary 2");
        summary2.add(summaryLabel2);
        detailButton2.setText("Detail");
        detailButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                detailButton2ActionPerformed(evt);
            }
        });
        summary2.add(detailButton2);
        summaryDetailPanel2.add(summary2, BorderLayout.CENTER);
        detailLabel2.setText("Detail 2");
        detail2.add(detailLabel2);
        summaryDetailPanel2.add(detail2, BorderLayout.SOUTH);
        infoPanel.add(summaryDetailPanel2);
        scrollingInfoPanel.setViewportView(infoPanel);
        scrollingInfoPanel.setHorizontalScrollBarPolicy(
                ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        leftPanel.add(scrollingInfoPanel, BorderLayout.CENTER);
        getContentPane().add(leftPanel, BorderLayout.WEST);
    }
    private void formComponentResized(ComponentEvent evt) {
        setInfoSize();
    }
    private void detailButton2ActionPerformed(ActionEvent evt) {
        detail2.setVisible( !detail2.isVisible() );
        setInfoSize();
    }
    private void detailButton1ActionPerformed(ActionEvent evt) {
        detail1.setVisible( !detail1.isVisible() );
        setInfoSize();
    }
    private void setInfoSize(){
        infoPanel.setPreferredSize(new Dimension(150,
                (int)summary1.getSize().getHeight()
                +(int)summary2.getSize().getHeight()
                +(detail1.isVisible()?(int)detail1.getSize().getHeight():0)
                +(detail2.isVisible()?(int)detail2.getSize().getHeight():0)
                +20));
    }
    public static void main(String args[]) {
        new ShowHideDetailsDemo().setVisible(true);
    }
    private JButton detailButton1, detailButton2;
    private JScrollPane scrollingInfoPanel;
    private JPanel mainPanel, leftPanel, infoPanel, summaryDetailPanel1, summaryDetailPanel2,
            summary1, summary2, detail1,detail2;
    private JLabel summaryLabel1, summaryLabel2, detailLabel1, detailLabel2;
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb remove in for Java Basics - Anfänger-Themen 5
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
D remove arraylist by id not work Java Basics - Anfänger-Themen 6
H Collections JTree remove zeigt keinen Effekt! Java Basics - Anfänger-Themen 8
B Sorting List und Remove Java Basics - Anfänger-Themen 2
P Map - remove() ? Java Basics - Anfänger-Themen 46
Hacer remove at index Java Basics - Anfänger-Themen 31
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
S Vererbung remove elment from Array Java Basics - Anfänger-Themen 0
J easy remove method Java Basics - Anfänger-Themen 1
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
U PriorityQueue remove Java Basics - Anfänger-Themen 2
M ArrayList - remove() löscht nicht! - weiß nicht wieso! Java Basics - Anfänger-Themen 8
B map.remove(long) Java Basics - Anfänger-Themen 5
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
B LinkedList remove Java Basics - Anfänger-Themen 5
I Liste Remove erstes Element Java Basics - Anfänger-Themen 5
D Wie Iterator Remove implementieren? Java Basics - Anfänger-Themen 11
W Treemap remove Java Basics - Anfänger-Themen 5
H Remove Methode von List Java Basics - Anfänger-Themen 6
W ArrayLists: Verständnisproblem bei remove() Java Basics - Anfänger-Themen 2
C Datentypen ArrayList.remove(index) hinterlässt leeres Feld Java Basics - Anfänger-Themen 5
H TreeMap.remove(value) - und nicht mit key! Geht das? Java Basics - Anfänger-Themen 18
S OOP ArrayList Klasse nachbauen, prob mit remove Java Basics - Anfänger-Themen 5
U ArrayList.remove(i) funktioniert nicht Java Basics - Anfänger-Themen 9
J Remove from an AraayList Java Basics - Anfänger-Themen 8
J Iterator remove()? Java Basics - Anfänger-Themen 5
T ArrayList#remove Java Basics - Anfänger-Themen 8
M ArrayList remove Element? Java Basics - Anfänger-Themen 3
B HashMap remove Java Basics - Anfänger-Themen 2
J TreeSet methode Remove Java Basics - Anfänger-Themen 13
J remove Problem Java Basics - Anfänger-Themen 8
M remove()-Methode eines Iterators Java Basics - Anfänger-Themen 3
megachucky remove bei Vector klappt nicht Java Basics - Anfänger-Themen 11
M Problem mit Iterator.remove() Java Basics - Anfänger-Themen 5
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
P Herausfinden, auf welchem Panel des CardLayouts man gerade ist? Java Basics - Anfänger-Themen 12
CptK Interface 2 von einander unabhängige Frames mit Panel gleichzeitig nutzen Java Basics - Anfänger-Themen 66
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
L Panel verkleinert sich unerklärlicherweise Java Basics - Anfänger-Themen 7
N Mehrere Forms auf einem Panel Java Basics - Anfänger-Themen 6
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
J Panel auf Hintergrund Java Basics - Anfänger-Themen 5
J Panel und Menü Java Basics - Anfänger-Themen 6
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
D Hintergrund jpg auf Panel Java Basics - Anfänger-Themen 3
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
A Frage zu einer Methode - Panel arbeitet nicht ordnungsgemäß Java Basics - Anfänger-Themen 2
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
S Image in Panel laden Java Basics - Anfänger-Themen 12
D Panel von unten herausfahren Java Basics - Anfänger-Themen 2
S mehrere Rechtecke in ein Panel Java Basics - Anfänger-Themen 2
L panel verschmiert beim draggen! Java Basics - Anfänger-Themen 2
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
S Swing, Panel über Hintergrundbild!! Java Basics - Anfänger-Themen 6
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
J JLabels in Panel Aktualisieren Java Basics - Anfänger-Themen 5
H Panel in Variable setzen möglich? Java Basics - Anfänger-Themen 10
M Spezielles Panel fade in / out Java Basics - Anfänger-Themen 5
C Panel Hintergrundfarbe per AdjustmenListenmer ändern Java Basics - Anfänger-Themen 4
D GUI: Panel in Panel laden Java Basics - Anfänger-Themen 10
R Eingefärbtes Panel wird in Frame nicht angezeigt Java Basics - Anfänger-Themen 10
eLogic Panel hinzufügen Java Basics - Anfänger-Themen 4
Nic.o Panel während Ladevorgang einblenden Java Basics - Anfänger-Themen 12
B PacMan: Panel aktualisieren Java Basics - Anfänger-Themen 2
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
Z JFileChooser/ Panel + Menüproblem Java Basics - Anfänger-Themen 3
J GridLayout auf Panel zentrieren? Java Basics - Anfänger-Themen 2
G Aus eigenem Panel dieses Löschen Java Basics - Anfänger-Themen 2
J Panel-übergreifende Kommunikation Java Basics - Anfänger-Themen 3
M Panel ersetzen funktioniert nicht Java Basics - Anfänger-Themen 2
M BorderLayout zickt! Ein Panel versteckt das andere! Java Basics - Anfänger-Themen 6
K Panel fixieren und nicht zentrieren Java Basics - Anfänger-Themen 2
F Zeichnen auf einem Panel Java Basics - Anfänger-Themen 2
N Panel entfernen Java Basics - Anfänger-Themen 2
B Zugriff auf JTextPane in einem anderen Panel Java Basics - Anfänger-Themen 2
H TabbedPane: wie schalte ich auf ein bestimmtes panel? Java Basics - Anfänger-Themen 2
G Bild in Panel oder canvas einfügen Java Basics - Anfänger-Themen 3
kulturfenster Panel in Frame integrieren Java Basics - Anfänger-Themen 5
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
J Probleme mit Visual Editor Komponenten auf Panel legen Java Basics - Anfänger-Themen 4
M Panel ausgrauen (disable) Java Basics - Anfänger-Themen 2
K Component vom einem Panel löschen ? Java Basics - Anfänger-Themen 14
C Panel wird nicht übermalt Java Basics - Anfänger-Themen 6
P Swing Textarae so groß wie Panel? Java Basics - Anfänger-Themen 2
G Rekursives aufrufen führt zu StackOverflowError Panel durchl Java Basics - Anfänger-Themen 5
T JMenuItems werden von Komponente in Panel verdeckt Java Basics - Anfänger-Themen 11
G Auf ein Panel malen Java Basics - Anfänger-Themen 16
D Event mit n-Button8s) von einem Panel Java Basics - Anfänger-Themen 9
Z Wie übergebe ich einer MyFrame-Klasse ein Panel? Java Basics - Anfänger-Themen 8
A g=panel.getGraphics() im Thread => Nullpointer Java Basics - Anfänger-Themen 9
S Bilder bleiben auf einem Panel nicht gezeichnet Java Basics - Anfänger-Themen 6
L Java Control Panel Java Basics - Anfänger-Themen 5
A Swing Schriftfarbe für komplettes Panel ändern Java Basics - Anfänger-Themen 2
G Panel Java Basics - Anfänger-Themen 4
B Kann man mit XMl ein Panel erstelln Java Basics - Anfänger-Themen 2
R Einfügen einer eigenen methode in ein Panel Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben