2016-09-26 4 views
0

Wie kann ich eine JScrollPane aus einer JFrame entfernen? HierWie kann ich ein JScrollPane von einem JFrame entfernen?

ist ein Beispiel dafür, was ich versucht, aber es funktioniert nicht:

Container gContentPane = frame.getContentPane(); 
JScrollPane scroll = new JScrollPane(gContentPane); 
frame.setContentPane(scroll); 
frame.revalidate(); 
frame.repaint(); 

if (scroll != null){ 
    frame.getContentPane().remove(scroll);      
    frame.revalidate(); 
    frame.repaint(); 
} 

Die JScrollPane ist immer noch da auch nach frame.getContentPane().remove(scroll);. Was muss ich ändern, um es zu entfernen?

+1

Sie sollten frame.setContentPane (scroll) wirklich zu 'frame.getContentPane() ändern. Add (scroll)'. Derzeit versucht Ihr Code, JScrollPane selbst zu entfernen. – VGR

+0

Verwenden Sie eine ['CardLayout'] (http://download.oracle.com/javase/8/docs/api/java/awt/CardLayout.html) wie in [diese Antwort] (http://stackoverflow.com) gezeigt/a/5786005/418556). –

Antwort

2

Wenn Sie etwas in Swing entfernen möchten, muss es zuerst hinzugefügt werden. Sie haben den Bildlaufbereich nirgends hinzugefügt, daher würde ich vorschlagen, den Inhaltsbereich auf den vorherigen zu ändern.

Container gContentPane = frame.getContentPane(); 
JScrollPane scroll = new JScrollPane(gContentPane); 
frame.setContentPane(scroll); 
frame.revalidate(); 
frame.repaint(); 

if (scroll != null) { 
    frame.setContentPane(gContentPane); 
    frame.revalidate(); 
    frame.repaint(); 
} 
+0

Problem gelöst. Vielen Dank – user2129896

Verwandte Themen