Content austauschen durch ActionListener

Status
Nicht offen für weitere Antworten.
J

Jeans78

Gast
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 ???:L

Hier der Code
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;

Code:
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
}

Code:
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.
 

Wildcard

Top Contributor
Das ist eine sehr seltsame Frage... :bahnhof:
In add kommt das rein was du auf den Frame adden willst
 
J

Jeans78

Gast
Ok, ich möchte den gesamten Content des Beispiels adden. Ich weiss allerdings nicht wie ich den Code des Beispiels umstricken muss und was dann in die add rein muss.
 
G

Guest

Gast
Jeans78 hat gesagt.:
Ok, ich möchte den gesamten Content des Beispiels adden. Ich weiss allerdings nicht wie ich den Code des Beispiels umstricken muss und was dann in die add rein muss.

hmm add(panel) ?

ich würd das einfach so machen, dass ich die panels mit .setVisible() ausblende bzw. einblende.
 

Wildcard

Top Contributor
Jeans78 hat gesagt.:
Ok, ich möchte den gesamten Content des Beispiels adden. Ich weiss allerdings nicht wie ich den Code des Beispiels umstricken muss und was dann in die add rein muss.
Alles zu entfernen um anschließend das gleiche wieder zu adden ist sehr ungünstig. Statt dessen solltest du deine Komponenten reseten.
 
G

Gast

Gast
Ich wollte allderdings ein ganz anderes Layout verwenden. So ne art anfangsscreen und dann verschiedene screens für die jeweiligen anwendungen.

Mein anderes grosses Problem is das ich nicht weiss wie ich dass Klassenübergreifend lösen kann. Wenn z.B. das neue Panel oder Content in einer anderen Klasse ist wie ist deren Strukturaufbau. Deshalb hab ich einfach noch so n Beispiel Code genommen zum umstricken. Wollte das einfach mal nachvollziehen.
 

Wildcard

Top Contributor
Gast hat gesagt.:
Ich wollte allderdings ein ganz anderes Layout verwenden. So ne art anfangsscreen und dann verschiedene screens für die jeweiligen anwendungen.
Dein Frame sollte eine Methode haben um ihm ein Panel zu setzen.
Jeder 'screen' sollte nun ein eigenes Panel(eine Klasse die von JPanel erbt) sein das man einfach auf den Frame setzen kann.
 
G

Gast

Gast
Sorry, wenn ich noch mal nachhake, kann ich nach dem ich alles removed habe nicht einfach sagen add(klasse.content bzw. panel) oder so ähnlich!? Was ich im internet bis jetzt gefunden hab im bezug auf actionlistener spielt sich immer nur innerhalb einer klasse ab. Ich möcht aber alles von einer anderen klasse adden. Für mich als Newbie wäre ein kleines Bsp. nich schlecht :)
 
G

Gast

Gast
Hab jetzt mal ein neues Panel innerhalb der button1Listener Klasse eingetragen.

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

JPanel testPanel = new JPanel();
testPanel.setLayout(new FlowLayout(FlowLayout.CENTER));

JLabel selectLabel = new JLabel("Please select an industry sector.");
testPanel.add(selectLabel);
oldContent.add(testPanel);
}

Wenn ich jetzt allerdings den Button anklicke wird alles grau dargestellt. Erst wenn ich das Fenster bewege wird der Text angezeigt.

Um nochmal auf meine eigentliches Problem zurückzukommen. Kann ich dieses testPanel in eine separate Klasse auslagern!? Danke
 

Leroy42

Top Contributor
Du mußt nach Veränderungen an Panels revalidate aufrufen.

Code:
oldContent.add(testPanel);
oldContent.revalidate();
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog Java Basics - Anfänger-Themen 7
B java.mail - Email antworten und Content ausgeben Java Basics - Anfänger-Themen 4
W Erste Schritte Content Pane scheint zweigeteilt zu sein. Java Basics - Anfänger-Themen 1
I JAXBContext / UnmarshalException / Content is not allowed in prolog / encoding="iso-8859-15" Java Basics - Anfänger-Themen 2
W Java XML-Reader: Content not allowed in Prolog Java Basics - Anfänger-Themen 7
F Content Pane / BorderLayout Java Basics - Anfänger-Themen 2
M javamail: HTML-Tags aus content eliminieren Java Basics - Anfänger-Themen 2
3 User erstellen / Oracle Content DB Java Basics - Anfänger-Themen 2
I Strukturfrage: Navigation und Content ähnlich wie HP Java Basics - Anfänger-Themen 4
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
M Die Hamster Figur austauschen Java Basics - Anfänger-Themen 6
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
N Werte zwischen Klassen austauschen Java Basics - Anfänger-Themen 1
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
L Array austauschen Java Basics - Anfänger-Themen 2
F Werte austauschen/übergeben Java Basics - Anfänger-Themen 10
H Sortieren durch Austauschen - GUI Java Basics - Anfänger-Themen 13
J Programm zum Buchstaben austauschen, logikproblem Java Basics - Anfänger-Themen 2
M Variablen Wie kann man ein Objekt austauschen? Java Basics - Anfänger-Themen 12
F Info zwischen verschiedene Klassen austauschen Java Basics - Anfänger-Themen 4
K Werte von 2 Klassen austauschen/ Bild im Label ändern Java Basics - Anfänger-Themen 12
-horn- In Dateian Markern Werte austauschen? Wie am elegantesten? Java Basics - Anfänger-Themen 3
P Zahlen austauschen Java Basics - Anfänger-Themen 4
E Daten zwischen Child-JFrame und Parent-JFrame austauschen Java Basics - Anfänger-Themen 2
L Zwei JFrames, Variable austauschen Java Basics - Anfänger-Themen 6
B Fensterinhalte austauschen Java Basics - Anfänger-Themen 3
S Daten zwischen Visual Klassen austauschen Java Basics - Anfänger-Themen 9
S elemente zwischen 2 jListen austauschen Java Basics - Anfänger-Themen 6
G " " in String austauschen Java Basics - Anfänger-Themen 5
T JPanels austauschen? Java Basics - Anfänger-Themen 4
M Daten zwischen Frames austauschen Java Basics - Anfänger-Themen 2
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
S Durch HashMap iterieren Java Basics - Anfänger-Themen 8
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
F Methode für Teilbarkeit durch 5 tut was anderes.... Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
H Wie kann ich durch Methoden definiren? Java Basics - Anfänger-Themen 8
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
O Typparameter durch Wildcards verallgemeinern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
H Array mit Zahlen die durch 3 und 5 teilbar sind erstellen Java Basics - Anfänger-Themen 13
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
S For-Schleife durch "ESC" verlassen? Java Basics - Anfänger-Themen 2
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben