Component austauschen und aktualisieren ?

Status
Nicht offen für weitere Antworten.

0001001

Bekanntes Mitglied
Hallo,

hab folgendes Problem:
Habe eine JScrollPane die eine JTextArea beinhaltet.

Code:
JTextArea text1 = new JTextArea ();
JScrollPane scroll = new JScrollPane(text1);

Zusätzlich habe ich noch eine zweite JTextArea :
Code:
JTextArea text2 = new JTextArea ();

Jetzt würde ich gerne auf Knopfdruck die erste JTextArea aus der ScrollPane entfernen und die zweite JTextArea einfügen. Nur wie funktioniert das?
Ich habs so probiert, jedoch ohne Erfolg:
Code:
scroll.remove(text1);
scroll.add(text2);
scroll.revalidate();

Wäre für eine Hilfestellung sehr dankbar!
 
S

SlaterB

Gast
ist es denn so schwer, bei sowas ein fertiges Testprogramm zur Verfügung zu stellen?
neben 3 Min. Tipp kommen dann immer noch 5 Min. stumpfes Auffüllen dazu..

Code:
public class TestGUI
    extends JFrame
{

    private JScrollPane sp = new JScrollPane();

    public TestGUI()
        throws Exception
    {

        JPanel p1 = new JPanel();
        p1.setPreferredSize(new Dimension(600, 600));
        p1.setBackground(Color.GREEN);
        JButton b = new JButton("Test");
        b.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    JPanel p2 = new JPanel();
                    p2.setPreferredSize(new Dimension(500, 500));
                    p2.setBackground(Color.RED);
                    sp.setViewportView(p2);
                }
            });
        p1.add(b);
        sp.setViewportView(p1);
        add(sp);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        setVisible(true);
    }

    public static void main(String[] args)
        throws Exception
    {
        new TestGUI();
    }
}
 

Marco13

Top Contributor
Ja, man entfernt das Objekt nicht von der Scrollpane, sondern vom Viewport der Scrollpane. (Das kann man auch ohne Compilierbares beispielprogramm sagen :cool: :bae: aber stimmt schon - die Fragesteller erwarten irgendwie immer, dass man sich den .... für sie Aufreißt, aber die 2 Minuten für ein KSKB mal SELBST zu inversteiren, auf die Idee kommen sie nicht :x )
 

0001001

Bekanntes Mitglied
Hi,

erstmal vielen Dank. Mit nem Viewport funktionierts.

Zu deiner Kritik: Da bin ich Marco13s Meinung, dass hier einfach ein Hinweis auf den Viewport genügt hätte. Ein Beispielprogramm macht hier wirklich nur bedingt Sinn, da das Problem kein sehr großes war. Dennoch danke für dein schönes Programm!
 

Verjigorm

Top Contributor
wo schon grade das Thema hier offen ist, muss ich ja kein neues aufmachen :)

wie findet man denn raus, auf welche Komponente der Viewport zeigt?

In dem Beispiel jetzt p1 oder p2?
ScrollPane.getViewport() hab ich gefunden, aber keinerlei Hinweise auf die Komponente ...

also zb:
wenn viewport auf p1, dann setze Viewport beim Klick auf p3
wenn viewport auf p2, dann setze Viewport beim Klick auf p4

Wie geht das?
 
S

SlaterB

Gast
ui, eine höhere Frage,
sei froh dass schon mein KSKB da ist, sonst gäbs auch Mecker ;)

Code:
public class TestGUI
    extends JFrame
{
    private JPanel p1 = new JPanel();
    private JPanel p2 = new JPanel();
    private JScrollPane sp = new JScrollPane();

    public TestGUI()
        throws Exception
    {
        p1 = new JPanel();
        p1.setPreferredSize(new Dimension(600, 600));
        p1.setBackground(Color.GREEN);

        p2 = new JPanel();
        p2.setPreferredSize(new Dimension(500, 500));
        p2.setBackground(Color.RED);

        ActionListener l = new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    JPanel p = (JPanel)sp.getViewport().getComponent(0);
                    // edit: besser sp.getViewport().getView()

                    if (p == p1)
                    {
                        sp.setViewportView(p2);
                    }
                    else
                    {
                        sp.setViewportView(p1);
                    }
                }
            };
        JButton b1 = new JButton("Test1");
        b1.addActionListener(l);
        p1.add(b1);
        JButton b2 = new JButton("Test2");
        b2.addActionListener(l);
        p2.add(b2);
        sp.setViewportView(p1);
        add(sp);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        setVisible(true);
    }

    public static void main(String[] args)
        throws Exception
    {
        new TestGUI();
    }
}
 

Verjigorm

Top Contributor
Danke,
"die Komponenten vom ViewPort()" auslesen hätte mir hier als Tipp genügt ;)

(auf die Idee bin ich garnicht gekommen :( )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Component aus Container entfernen bzw. austauschen. AWT, Swing, JavaFX & SWT 6
C JPanel Component austauschen AWT, Swing, JavaFX & SWT 4
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
C Swing Component bei Doppelklick löschen AWT, Swing, JavaFX & SWT 4
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
M Swing Component Resize AWT, Swing, JavaFX & SWT 7
L Eigene Component anordnen AWT, Swing, JavaFX & SWT 7
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
W Swing Component mehrfach adden AWT, Swing, JavaFX & SWT 0
H Drag component out of window AWT, Swing, JavaFX & SWT 1
A remove(Component) funktioniert nicht; JTable AWT, Swing, JavaFX & SWT 4
A Swing Focus auf gemalte Component AWT, Swing, JavaFX & SWT 5
L Swing Component alignment innerhalb einer JList AWT, Swing, JavaFX & SWT 3
M AWT Drag n Drop-Support für Component AWT, Swing, JavaFX & SWT 5
M Kein resize nach Component.setVisible() AWT, Swing, JavaFX & SWT 2
Ebenius AWT Bug in Component.getLocationOnScreen() AWT, Swing, JavaFX & SWT 7
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
B JTable Component mit String? AWT, Swing, JavaFX & SWT 4
M Eigenes Panel aus Component? AWT, Swing, JavaFX & SWT 5
H Component Zerren AWT, Swing, JavaFX & SWT 5
S Swing Component vertikal und hochizontal zentrieren? AWT, Swing, JavaFX & SWT 5
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
B Swing verschachteltes GUI: repaint() ändert mehr als nur gewünschte Component AWT, Swing, JavaFX & SWT 4
V Swing remove(Component) blockiert Thread sehr lange. AWT, Swing, JavaFX & SWT 6
C Problem mit remove(Component comp) AWT, Swing, JavaFX & SWT 23
F AWT Component in OpenGL anzeigen? AWT, Swing, JavaFX & SWT 18
A Java Konsolen Component AWT, Swing, JavaFX & SWT 6
G Swing Component.toString() was bedeutet flags AWT, Swing, JavaFX & SWT 8
1 Eigene Component in JScrollBar + fixe Linien??? AWT, Swing, JavaFX & SWT 2
DamienX Swing Component auf mehreren Containern AWT, Swing, JavaFX & SWT 2
algorismi AWT Tranparente heavyweight component AWT, Swing, JavaFX & SWT 2
R Swing Methode add([Component]) funzt nich AWT, Swing, JavaFX & SWT 7
Developer_X AWT Component added keinen MouseListener AWT, Swing, JavaFX & SWT 7
U LayoutManager [GBL] Component aus einer Zelle löschen AWT, Swing, JavaFX & SWT 2
H Swing Illegal component position! AWT, Swing, JavaFX & SWT 2
C Flamingo Component AWT, Swing, JavaFX & SWT 2
M Doppelklick auf Component abfangen AWT, Swing, JavaFX & SWT 5
P DragAndDrop zw Component und Container AWT, Swing, JavaFX & SWT 4
M AWT Component/Canvas erzeugt unerwünschten Rahmen bei paint AWT, Swing, JavaFX & SWT 3
T Swing Component in Graphics zeichnen AWT, Swing, JavaFX & SWT 4
R Zugriff auf Component um addComponentListener() aufzurufen AWT, Swing, JavaFX & SWT 4
K AWT/SWING intern - Wie funktioniert die Component-Ermittlung AWT, Swing, JavaFX & SWT 13
S Line Component in SWING AWT, Swing, JavaFX & SWT 2
S java.awt.Component und paint() AWT, Swing, JavaFX & SWT 4
hdi Verständnisfrage: Container vs. Component AWT, Swing, JavaFX & SWT 3
D Eigene Component erstellen? AWT, Swing, JavaFX & SWT 4
C Syntax Highlighting Component AWT, Swing, JavaFX & SWT 2
O KeyBoardFocusManager - previous und next Component checken? AWT, Swing, JavaFX & SWT 2
A Eigene, sich selbst zeichnende Component AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
S Thread beenden, wenn Component nicht mehr benötigt wird AWT, Swing, JavaFX & SWT 12
G "Rating Component" - Bewerten über JTable AWT, Swing, JavaFX & SWT 3
G Drag And Drop von Component (List, Tree) zum Desktop AWT, Swing, JavaFX & SWT 2
F LayoutManager und Component.setVisible(boolean) AWT, Swing, JavaFX & SWT 2
P Component ändern (repaint) AWT, Swing, JavaFX & SWT 9
F Probleme bei add(Component) JPanel > JFrame AWT, Swing, JavaFX & SWT 3
B Component AWT, Swing, JavaFX & SWT 5
L Swing Component in Buffered Image AWT, Swing, JavaFX & SWT 6
G Component "finden" AWT, Swing, JavaFX & SWT 6
H Component fokussierbar machen AWT, Swing, JavaFX & SWT 2
P Wie das Component Object des Hauptfensters ermitteln? AWT, Swing, JavaFX & SWT 4
M GridBagLayout - Component Position AWT, Swing, JavaFX & SWT 4
R Component einer Form herausbekommen AWT, Swing, JavaFX & SWT 3
T JMenu/JMenuItem Component auf der geaddet wurde AWT, Swing, JavaFX & SWT 16
B Component in JSplitPane aktualisieren AWT, Swing, JavaFX & SWT 2
G add(Component) in paintComponent erlaubt ? AWT, Swing, JavaFX & SWT 2
K Component einfügen in JPane AWT, Swing, JavaFX & SWT 5
M getSize von Component und ModelListener AWT, Swing, JavaFX & SWT 2
S Component auf Label zeichnen? AWT, Swing, JavaFX & SWT 3
R convertPointToScreen(Point p, Component c) AWT, Swing, JavaFX & SWT 5
B ImageIcon auf JPanel austauschen AWT, Swing, JavaFX & SWT 3
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
P AWT Einzelne Komponenten zur Laufzeit austauschen? AWT, Swing, JavaFX & SWT 3
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
G JavaFX Pane ändern/"austauschen" AWT, Swing, JavaFX & SWT 2
X GridLayout JPanel austauschen AWT, Swing, JavaFX & SWT 2
B Bild bearbeiten mit Transparenz (spiegeln, Farben austauschen) AWT, Swing, JavaFX & SWT 8
R Swing Komponente austauschen AWT, Swing, JavaFX & SWT 2
G SWT TreeViewer - drop listener austauschen AWT, Swing, JavaFX & SWT 2
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
C Swing Toolbar zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 5
S Einzelne JComboBox in JTable austauschen AWT, Swing, JavaFX & SWT 4
D Panels Dynamisch zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 2
C LayoutManager GridBagLayout Komponenten austauschen AWT, Swing, JavaFX & SWT 5
S Panel austauschen, ohne Größenänderung des Frames AWT, Swing, JavaFX & SWT 5
badfish Swing ImageIcon auf JLabel, Fenster Maximieren verbieten und Icon oben links austauschen? AWT, Swing, JavaFX & SWT 5
badfish Swing JPanel austauschen durch Button-Druck AWT, Swing, JavaFX & SWT 6
Pithecanthropus Swing JPanels dynamisch austauschen AWT, Swing, JavaFX & SWT 8
G inahlt von content pane austauschen AWT, Swing, JavaFX & SWT 2
G Panel austauschen - Anfängerfrage AWT, Swing, JavaFX & SWT 9
C Wie würdet ihr das machen? JPanel beim Klicken austauschen! AWT, Swing, JavaFX & SWT 4
G Dynamisch Komponenten in einem JPanel bzw JFram austauschen AWT, Swing, JavaFX & SWT 7
P SWT: Composi te zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 3
J GUI JPanel zur Laufzeit austauschen. AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben