ScrollPane zeigt scrollbalken nicht an

Status
Nicht offen für weitere Antworten.

Samson_Miller

Bekanntes Mitglied
Ich habe ein Panel was am Anfang leer ist und was nach und nach mit Objekten gefüllt wird. Die Objekte werden untereinander angeordnet. Wenn es nicht mehr in das Fenster passt, erscheint leider kein ScrollPane. Wenn ich nach jedem hinzufügen eines Objektes die ScrollPane mit .updateUI() aktualisiere, dann ordnet er die Objekte nebeneinander an, wobei er dann aber auch die ScrollPane anzeigt.

Gibt es auch eine Möglichkeit die Objekte vertikal anzuordnen und zu scrollen?
 

lin

Top Contributor
spezifizier dich :bae:
mit was für nem Layout ordnest du denn die Objekte im Panel untereinander an?
 

Samson_Miller

Bekanntes Mitglied
Code:
Fenster(String titel) {
   super(titel);
   setLayout(new GridLayout(1,10));
   JPanel panel = new JPanel();
   JScrollPane scrollpane = new JScrollpane(panel);
  
   add(scrollpane);

//Weiter im Programm
    .
    .
}
 

Samson_Miller

Bekanntes Mitglied
Wenn ich das so machen, dann mit die ScrollPane aber nciht den Kompletten Platz des Fensters ein sondern nur ein kleinen Teil. Ich glaube es liegt daran, dass ich alle Objekte die ich erzeuge in dieses eine Panel packe, müsste ich nicht für jedes Objekt eine neues Panel erzeugen, die ich dann alle in dies eine Packe?
So sieht es aus wenn ich
Code:
 new GridLayout(10,1);
mache:

bild.jpg
 

André Uhres

Top Contributor
Samson_Miller hat gesagt.:
Ich habe ein Panel was am Anfang leer ist und was nach und nach mit Objekten gefüllt wird. Die Objekte werden untereinander angeordnet. Wenn es nicht mehr in das Fenster passt, erscheint leider kein ScrollPane. ...
Versuch mal eine PreferredSize bei dem Panel zu setzen das scrollen soll.
JScrollPane müsste dann so weit scrollen wie PreferredSize angibt.
Samson_Miller hat gesagt.:
...dann mit die ScrollPane aber nciht den Kompletten Platz des Fensters ein ...
Du könntest den Zentrumbereich vom BorderLayout nutzen, der nimmt den ganzen verfügbaren Platz ein.
 

Samson_Miller

Bekanntes Mitglied
Es wird ein Objekt erzeugt in dem JLabel's, JTextfield's und JComboBox's sind. z.B. folgender Quellcode:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TelBuch extends JFrame {
   String[] elemente = {"maennlich", "weiblich"};
   
   TelBuch(String titel) {
      super(titel);
      
      setLayout(new GridLayout(6,1,1,1));
      
      JLabel name = new JLabel("Name:");
      JTextField name_eingabe = new JTextField(10);

      
      JLabel geschlecht = new JLabel("Geschlecht:");
      JComboBox geschlecht_auswahl = new JComboBox(elemente);

      
      JLabel nummer = new JLabel("Nummer:");
      JTextField nummer_eingabe = new JTextField(10);
      
      add(name);
      add(name_eingabe);
      add(geschlecht);
      add(geschlecht_auswahl);
      add(nummer);
      add(nummer_eingabe);
   }
}
 

André Uhres

Top Contributor
Code:
//package schnipsel2;
/*
 * TelBuch.java
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TelBuch extends JFrame {
    String[] elemente = {"maennlich", "weiblich"};
    TelBuch(String titel) {
        super(titel);
        setSize(300,150);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        mainPanel = new MainPanel();
        getContentPane().add(new JScrollPane(mainPanel), BorderLayout.CENTER);
    }
    private MainPanel mainPanel;
    public static void main(String[] args){
        new TelBuch("TelBuch").setVisible(true);
    }
    class MainPanel extends JPanel{
        public MainPanel(){
            setLayout(new GridLayout(6,1,1,1));
            JLabel name = new JLabel("Name:");
            JTextField name_eingabe = new JTextField(10);
            JLabel geschlecht = new JLabel("Geschlecht:");
            JComboBox geschlecht_auswahl = new JComboBox(elemente);
            JLabel nummer = new JLabel("Nummer:");
            JTextField nummer_eingabe = new JTextField(10);
            add(name);
            add(name_eingabe);
            add(geschlecht);
            add(geschlecht_auswahl);
            add(nummer);
            add(nummer_eingabe);
        }
        public Dimension getPreferredSize(){
            return new Dimension(250,getComponents().length*30);
        }
    }
}
 

Samson_Miller

Bekanntes Mitglied
schön und gut, nur leider löst das nicht so ganz mein Problem. Wenn ich das so mache, dann habe ich im Frame ein Objekt und die ScrollPane wird auch mit angezeigt.

Nur bei meinem eigentliches Programm ist es so, dass ich am Anfag ein leeres Frame habe und erst nach und nach die Objekte hinzugefügt werden. Und er ordnet die Objekte immer nebeneinander an und nicht untereinander
 

André Uhres

Top Contributor
Samson_Miller hat gesagt.:
schön und gut, nur leider löst das nicht so ganz mein Problem...
Das löst schon dein Problem. Der springende Punkt bleibt immer die PreferredSize von mainpanel:
Code:
//package schnipsel2; 
/* 
* TelBuch.java 
*/ 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class TelBuch extends JFrame { 
    String[] elemente = {"maennlich", "weiblich"}; 
    TelBuch(String titel) { 
        super(titel); 
        setSize(300,150); 
        setLocationRelativeTo(null); 
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
        mainPanel = new MainPanel(); 
        getContentPane().add(new JScrollPane(mainPanel), BorderLayout.CENTER); 
        JToolBar tools = new JToolBar(); 
        getContentPane().add(tools, BorderLayout.NORTH); 
        btn = new JButton("Name"); 
        tools.add(btn); 
        btn.addActionListener(new ActionListener(){ 
            public void actionPerformed(ActionEvent e) { 
                addC(); 
            } 
        }); 
    } 
    private void addC(){ 
        switch (mainPanel.getComponents().length){ 
            case 0:{ 
                JLabel name = new JLabel("Name:"); 
                JTextField name_eingabe = new JTextField(10); 
                mainPanel.add(name); 
                mainPanel.add(name_eingabe); 
                name_eingabe.requestFocusInWindow(); 
                btn.setText("Geschlecht"); 
                break; 
            }case 2:{ 
                JLabel geschlecht = new JLabel("Geschlecht:"); 
                JComboBox geschlecht_auswahl = new JComboBox(elemente); 
                mainPanel.add(geschlecht); 
                mainPanel.add(geschlecht_auswahl); 
                geschlecht_auswahl.requestFocusInWindow(); 
                btn.setText("Nummer"); 
                break; 
            }case 4:{ 
                JLabel nummer = new JLabel("Nummer:"); 
                JTextField nummer_eingabe = new JTextField(10); 
                mainPanel.add(nummer); 
                mainPanel.add(nummer_eingabe); 
                nummer_eingabe.requestFocusInWindow(); 
                btn.setText("Mehr"); 
                btn.setEnabled(false); 
                break; 
            } 
        } 
        mainPanel.scrollRectToVisible(new Rectangle(0, 
                mainPanel.getPreferredSize().height-1,1,1)); 
    } 
    private MainPanel mainPanel; 
    private JButton btn; 
    public static void main(String[] args){ 
        new TelBuch("TelBuch").setVisible(true); 
    } 
    class MainPanel extends JPanel{ 
        public Dimension getPreferredSize(){ 
            setLayout(new GridLayout(getComponents().length,1,1,1)); 
            return new Dimension(250,getComponents().length*30); 
        } 
    } 
}
 

Samson_Miller

Bekanntes Mitglied
Ich habe hier mal den Kompletten Code reingestellt, ich hoffe da steigt jemand durch *g*, und das jemand mein Problem dadurch versteht

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;



public class Test extends JFrame {
	JPanel panel;
	ObjektHinzufuegen dasObjekt;
	String ausgewaehltesGeschlecht;
	JScrollPane scrollbar;
 	
	Test(String titel) {
		
                super(titel);
		setLayout(new GridLayout(1,10,1,1));
		panel = new JPanel();
      	        scrollbar = new JScrollPane(panel);
      	        add(scrollbar);
     	
	class MenuLeistenLauscher implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			
                        //Behandlung der Menüleiste
			String quelle = e.getActionCommand();
			
                       //DATEI
    		       if(quelle.equals("Beenden")) {
       			       System.exit(0);
       		       }
       		    
       		       else if(quelle.equals("Objekt hinzufuegen")) {
       			      String[] possibleValues = { "maennlich", "weiblich"};

				Object selectedValue = JOptionPane.showInputDialog(null, "Bitte waehlen sie einen
                                Geschlecht:", "Geschlecht", JOptionPane.INFORMATION_MESSAGE, null, possibleValues, 
                                possibleValues[0]); 
       			
       			String ausgewaehltesGeschlecht = (String) selectedValue;
       			
       			dasObjekt = new ObjektHinzufuegen(ausgewaehltesGeschlecht);
       			      	
       			panel.add(dasObjekt);
       			panel.validate();    
       				
       		}
       		
       		else if(quelle.equals("OV entfernen")) {
       			
       		}
       	
       		
                //INFO
       		else if(quelle.equals("Über")) {
       			
       						
       		}
       	}
	}
      	

      	
 
      	//Das Menü
	JMenuBar menue_leiste = new JMenuBar();
		
	//DATEI
    	JMenu menu1 = new JMenu("Datei");
    	JMenuItem prog_item1 = new JMenuItem("Objekt hinzufuegen");
    	JMenuItem prog_item2 = new JMenuItem("Objekt entfernen");
    	JMenuItem prog_item3 = new JMenuItem("Beenden");
 
    	menu1.add(prog_item1);
    	menu1.add(prog_item2);
    	menu1.add(prog_item3);
    	
    	//INFO
    	JMenu menu2 = new JMenu("Info");
    	JMenuItem prog_item4 = new JMenuItem("Über");
    	//prog_item4.addActionListener(new MenuLeistenLauscher());
    	menu2.add(prog_item4);
    	
    	//die Menue-elemente werden der Menue-leiste hinzugefügt
    	menue_leiste.add(menu1);
    	menue_leiste.add(menu2);
    	setJMenuBar(menue_leiste);

		MenuLeistenLauscher actionlistener = new MenuLeistenLauscher();
		prog_item1.addActionListener(actionlistener);
		prog_item2.addActionListener(actionlistener);
		prog_item3.addActionListener(actionlistener);
		prog_item4.addActionListener(actionlistener);   	
    	
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);			
	}

	public static void main(String[] args) {
		Test fenster = new Test("Programm");
		fenster.pack();
		fenster.setSize(600,200);
		fenster.setVisible(true);
	}
}
 

André Uhres

Top Contributor
Samson_Miller hat gesagt.:
Ich habe hier mal den Kompletten Code reingestellt...
Mit deinem Code kann ich leider nix anfange weil er net kompilierbar is.
Offensichtlich haste net "den Kompletten Code reingestellt".
De Compiler meld nämlech zweemol "cannot find symbol":
Compiler hat gesagt.:
Code:
Test.java: cannot find symbol
symbol  : class ObjektHinzufuegen
location: class Test
   ObjektHinzufuegen dasObjekt; 

Test.java: cannot find symbol
symbol  : class ObjektHinzufuegen
location: class MenuLeistenLauscher
                dasObjekt = new ObjektHinzufuegen(ausgewaehltesGeschlecht); 
2 errors
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E GridLayout auf ScrollPane AWT, Swing, JavaFX & SWT 4
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
TheWhiteShadow JavaFX ScrollPane nimmt nicht genug platz ein AWT, Swing, JavaFX & SWT 3
J Gridpane Breite in Scrollpane automatisch anpassen AWT, Swing, JavaFX & SWT 2
E JavaFX Cursor-Position im ScrollPane AWT, Swing, JavaFX & SWT 0
E Swing Liste in Scrollpane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
C JavaFX ScrollPane schießt über das Ziel hinaus... AWT, Swing, JavaFX & SWT 1
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
T JavaFX Zoom in ScrollPane AWT, Swing, JavaFX & SWT 1
L Java FX Scrollpane automatisch resizen AWT, Swing, JavaFX & SWT 3
P Java ScrollPane und ViewPort AWT, Swing, JavaFX & SWT 2
M JavaFX Scrollpane: Style von Contentpanel default AWT, Swing, JavaFX & SWT 1
S JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht AWT, Swing, JavaFX & SWT 5
V Netbeans: TabbedPane, ScrollPane und Graphics AWT, Swing, JavaFX & SWT 4
S passende PaintComponent ? Zeichnen in TextArea mit Scrollpane ? AWT, Swing, JavaFX & SWT 2
O ScrollPane AWT, Swing, JavaFX & SWT 2
W JavaFX Scrollpane elementweise scrollen AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
Z Swing Welcher Layoutmanager bei ScrollPane? AWT, Swing, JavaFX & SWT 4
S ScrollPane in Textarea und auf Panel AWT, Swing, JavaFX & SWT 4
Bluedaishi Synchrone ScrollPane trennen AWT, Swing, JavaFX & SWT 2
G JTable als fixierte Spalte in Scrollpane scrollt nicht mit... AWT, Swing, JavaFX & SWT 1
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
W Swing Zum Ende einer Scrollpane scrollen AWT, Swing, JavaFX & SWT 2
S Bestimmten Bereich eines Bildes im JFrame mit Scrollpane anzeigen AWT, Swing, JavaFX & SWT 0
Kenan89 Vertikal und horizontal zentrierter Pane in ScrollPane AWT, Swing, JavaFX & SWT 5
Kenan89 Java FX ScrollPane Content mittig setzen AWT, Swing, JavaFX & SWT 5
P ScrollPane nach zeichnen dynamisch resize AWT, Swing, JavaFX & SWT 7
O Swing GroupLayout und Scrollpane AWT, Swing, JavaFX & SWT 3
T scrollpane taucht nicht auf AWT, Swing, JavaFX & SWT 6
D Zoom zur Mouseposition in ScrollPane AWT, Swing, JavaFX & SWT 5
F AWT ScrollPane Problem AWT, Swing, JavaFX & SWT 3
S Swing Bild in JPanel in ScrollPane neu zeichnen AWT, Swing, JavaFX & SWT 2
S Canvas in ScrollPane wird beim scrollen immer neu gezeichnet AWT, Swing, JavaFX & SWT 3
D JTable in Scrollpane AWT, Swing, JavaFX & SWT 3
H ScrollPane AWT, Swing, JavaFX & SWT 3
0 JTable im ScrollPane AWT, Swing, JavaFX & SWT 3
S Swing Scrollpane und JTables AWT, Swing, JavaFX & SWT 6
D Swing JList: ScrollPane auf JPanel ansprechen AWT, Swing, JavaFX & SWT 7
Spin JTable Header wird nicht angezeigt ohne ScrollPane AWT, Swing, JavaFX & SWT 3
F Swing Mehrere Textfelder in Scrollpane einfügen und dann zum Scrollen bringen? AWT, Swing, JavaFX & SWT 4
_dp Swing ScrollPane unterschlägt Großteil der Tabelle AWT, Swing, JavaFX & SWT 7
T ScrollPane Lösgelöst vom JPanel?!? AWT, Swing, JavaFX & SWT 4
D Panel zu Scrollpane adden AWT, Swing, JavaFX & SWT 8
T LayoutManager Panel in Scrollpane mittig ausrichten AWT, Swing, JavaFX & SWT 2
E JList in ScrollPane auf größe bringen AWT, Swing, JavaFX & SWT 5
A ScrollPane + internalFrame AWT, Swing, JavaFX & SWT 2
H ScrollPane scrollt ungefragt drauf los! AWT, Swing, JavaFX & SWT 5
T ScrollPane scrollt nicht einwandfrei AWT, Swing, JavaFX & SWT 3
G ScrollPane: getPreferredSize() AWT, Swing, JavaFX & SWT 11
M Labels in ScrollPane mit Linie verbinden AWT, Swing, JavaFX & SWT 2
P ScrollPane klappt zusammen beim verkleinern des Frames AWT, Swing, JavaFX & SWT 2
S Swing JTree in ScrollPane einen ToolTip geben AWT, Swing, JavaFX & SWT 2
T ScrollBar aus ScrollPane verstecken AWT, Swing, JavaFX & SWT 2
N ScrollPane in ein Fenster einfügen AWT, Swing, JavaFX & SWT 2
N ScrollPane passt sich nicht an AWT, Swing, JavaFX & SWT 4
D ScrollPane Anpassungen AWT, Swing, JavaFX & SWT 7
M Problem mit jPanel (FlowLayout) in ScrollPane AWT, Swing, JavaFX & SWT 4
K TextArea auf Scrollpane AWT, Swing, JavaFX & SWT 3
G Tabellenköpfe trotz Scrollpane ausschalten AWT, Swing, JavaFX & SWT 5
P Automatisches Mitscrollen der ScrollPane AWT, Swing, JavaFX & SWT 2
M Problem beim Einsatz von ScrollPane (Fenster spielt verrückt AWT, Swing, JavaFX & SWT 2
R ImageViewer - Bild mit ScrollPane AWT, Swing, JavaFX & SWT 4
K Row und ColumnHeader in ScrollPane werden "verwischt&qu AWT, Swing, JavaFX & SWT 4
F Resize in ScrollPane AWT, Swing, JavaFX & SWT 4
M Swing: ScrollPane Button mit Pfeil ändern wie? AWT, Swing, JavaFX & SWT 2
F Scrollpane scrollt immer zur TextArea AWT, Swing, JavaFX & SWT 8
vogella JTable und JScrollPane - ScrollPane immer in der Mitte AWT, Swing, JavaFX & SWT 2
B Komponenten über ScrollPane hinaus angezeigt. AWT, Swing, JavaFX & SWT 3
S JTable (Scrollpane und ColumnNames) und JComboBox AWT, Swing, JavaFX & SWT 2
T Warum keine ScrollBars in diesem ScrollPane? AWT, Swing, JavaFX & SWT 3
A Scrollspeed bei Scrollpane erhöhen? AWT, Swing, JavaFX & SWT 2
A Scrollpane verschmiert beim scrollen AWT, Swing, JavaFX & SWT 5
P Resize von ScrollPane Inhalten AWT, Swing, JavaFX & SWT 2
S Problem mit Scrollpane & Bild AWT, Swing, JavaFX & SWT 3
A JTable in ScrollPane scrollt nicht horizontal AWT, Swing, JavaFX & SWT 2
M JMenu verschwindet unter ScrollPane AWT, Swing, JavaFX & SWT 3
G jTable + ScrollPane (+ TableModel) AWT, Swing, JavaFX & SWT 7
G ScrollPane anfärben AWT, Swing, JavaFX & SWT 2
E Ärger mit ScrollPane, JTable und der Resize-Einstellung AWT, Swing, JavaFX & SWT 2
J Inhalt eines Scrollpane speichern AWT, Swing, JavaFX & SWT 3
M Eigen gemaltes JPanel im ScrollPane. klappt nicht. :-( AWT, Swing, JavaFX & SWT 10
M Wo bleibt mein ScrollPane? AWT, Swing, JavaFX & SWT 3
D Probleme mit TableLayoutManager und ScrollPane AWT, Swing, JavaFX & SWT 3
M Problem bei Verbinden v. jTable, ScrollPane u. JLabel AWT, Swing, JavaFX & SWT 5
G Anwendung um Scrollpane erweitern AWT, Swing, JavaFX & SWT 2
G Scrollpane in null-Layout einfügen AWT, Swing, JavaFX & SWT 5
N Frame in ScrollPane einfügen AWT, Swing, JavaFX & SWT 5
J Balken von ScrollPane immer unten AWT, Swing, JavaFX & SWT 6
Z Probleme mit eigenem Canvas und ScrollPane AWT, Swing, JavaFX & SWT 8
G JOptionPane zeigt nicht an was ich will AWT, Swing, JavaFX & SWT 2
S JavaFX WebView zeigt bestimmte Websites nicht an AWT, Swing, JavaFX & SWT 2
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
S JavaFX WebView zeigt keine Animation AWT, Swing, JavaFX & SWT 5
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
karlmasutra JavaFX ListView zeigt Einträge nicht an AWT, Swing, JavaFX & SWT 11
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
C FileChooser Save-Dialog zeigt Files nicht an AWT, Swing, JavaFX & SWT 3
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben