Jeans: Content austauschen durch ActionListener

Beitrag lesen

Hi

Ich habe für jeden Button in der Main Klasse eine eigene ActionListener Klasse (eg. class button1Listener) erstellt. Wird einer dieser Button gedrückt soll der Content des Frames ausgetauscht werden.

Ok, mit remove den Content des Frame's löschen funktioniert schon mal. Jetzt wollte ich mit add den neuen content einfügen.

Ich verstehe allerdings nicht was in add(???) rein muss, bei Verwendung des unteren Beispiels. Der Code des Beispiels soll ausgelagert bleiben u. nicht in die class button1Listener wg. Übersicht. Da komm ich echt nich weiter

Hier der Code

import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.*;button1Listener

public class button1Listener implements ActionListener
{
    private JPanel oldContent, oldPanel;

public analysisListener(JPanel c, JPanel p)
    {
        newFrame = f;
        oldFrame = old;
        oldContent = c;
        oldPanel = p;  //nur für event. change des Panels
    }

public void actionPerformed (ActionEvent e)
    {
        oldContent.removeAll();
        oldContent.add( ??? );
    }
}

Beispiel-Application:

import javax.swing.JFrame;

public class ListTest
{
   public static void main( String args[] )
   {
      ListFrame listFrame = new ListFrame(); // create ListFrame
      listFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      listFrame.setSize( 350, 150 ); // set frame size
      listFrame.setVisible( true ); // display frame
   } // end main
}

import java.awt.FlowLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.ListSelectionModel;

public class ListFrame extends JFrame
{
   private JList colorJList; // list to display colors
   private final String colorNames[] = { "Black", "Blue", "Cyan",
      "Dark Gray", "Gray", "Green", "Light Gray", "Magenta",
      "Orange", "Pink", "Red", "White", "Yellow" };
   private final Color colors[] = { Color.BLACK, Color.BLUE, Color.CYAN,
      Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY,
      Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE,
      Color.YELLOW };

// ListFrame constructor add JScrollPane containing JList to JFrame
   public ListFrame()
   {
      super( "List Test" );
      getContentPane().setLayout( new FlowLayout() ); // set frame layout

colorJList = new JList( colorNames ); // create with colorNames
      colorJList.setVisibleRowCount( 5 ); // display five rows at once

// do not allow multiple selections
      colorJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );

// add a JScrollPane containing JList to frame
      getContentPane().add( new JScrollPane( colorJList ) );

colorJList.addListSelectionListener(
         new ListSelectionListener() // anonymous inner class
         {
            // handle list selection events
            public void valueChanged( ListSelectionEvent event )
            {
               getContentPane().setBackground(
                  colors[ colorJList.getSelectedIndex() ] );
            } // end method valueChanged
         } // end anonymous inner class
      ); // end call to addListSelectionListener
   } // end ListFrame constructor
}

Danke schon mal.