Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JScrollPane

Empfohlene Antworten

Hallo,

ich habe einen Container, der über eine schleife mit JPanels gefüllt wird, und habe den wiederum in ein Jscrollpane gepackt...nur leider kann ich nicht scrollen. Hat einer vielleicht einen Vorschlag, woran das liegen könnte?

danke schon mal

der met :confused:

Wie fügst du die Komponente der JScrollPane hinzu?

Gruß Jaraz

ich mach:

1. container erzeugen

2. mit jpanel befüllen

3. den Jscrollpane mit dem container im Konstruktor erzeugen.

new JScrollPane(container);

danke im voraus

met

hallo perdi,

also das Jpanel wird in einer eigenen Klasse gebaut (pannel extends Jpanel),

das gui für das hauptdenster sieht so aus:

public void guiCapture(){

URL url = ClassLoader.getSystemResource ("images/logo.GIF");

Image img = getToolkit().getImage(url);

setIconImage(img);

setTitle("blablabla");

setSize(1100,600);

setResizable(false);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

c = new Container();

}

dann füll ich den Container c:

for(int i = 0; i < currentRow; i++){

pannel = new Pannel_ds();

Hashtable ht = (Hashtable) vec.get(i);

pannel.a.setText((String)ht.get("text"));

pannel.b.setText( (String)ht.get("text"));

pannel.h.setText((String)ht.get("text"));

pannel.d.setText((String)ht.get("text"));

pannel.e.setText((String)ht.get("text"));

pannel.f.setText((String)ht.get("text"));

pannel.g.setText((String)ht.get("text"));

pannel.setBounds(0,boundVO,1024,100);

boundVO = boundVO + 103;

c.add(pannel);

}

dann leg ich den Container in das ScrollPane

jp = new JScrollPane();

jp.setViewportView( c );

das alles wird in folgender reihenfolge im konstruktor ausgeführt:

1. guiCapture

2. schleife(vorher noch ne abfrage die die contents für die textfelder im pannel holt)

3. container ins jscrollpane

danke für die unterstützung...

jp = new JScrollPane();

jp.setViewportView( c );

Sowas habe ich bisher noch nie gesehen.

Vom ViewPort sollte man eigentlich die Finger lassen - es sei denn, man weiss genau, was man tut.

Probier einfach mal:

jp = new JScrollPane©;

Probier einfach mal:

jp = new JScrollPane©;

Probier mal deinen ganzen Komponente-Baum konsequent auf Swing umzustellen. Container ist AWT, wenn du selber Komponenten gruppieren willst dann nutze ein JPanel.

Das Mischen von AWT und Swing-Komponnenten führt immer wieder zu seltsamen Ergebnissen.

das funzt alles nicht, ich guck mal weiter und geb dir bescheid wenn ich was habe...

grüße met

das funzt alles nicht
Dann geh systematisch vor. Fang am besten bei Null an.

Erstelle ein Panel.

Klappt das?

Füge einen Button hinzu.

Noch immer okay?

Füge einen weiteren Button hinzu.

Alle Buttons okay?

JScrollPane drüberlegen.

So kannst du wenigstens den genauen Punkt bestimmen, wo es nicht mehr so läuft, wie du willst.

JScrollPane kann nur ganz bestimmte Komponenten unterstützen:

z.B. JEditorPane, JTextArea, JTree, JTable

d.h. Container gehören, so wie auch JPanel´s usw. nicht zu den unterstützten Komponenten.

ich hab das ganze nun mit hilfe einer JTable gelöst und bin ganz zuversichtlich.

vielen dank für die schnellen antworten, insbesondere an perdi...

thx a lot

met :D

JScrollPane kann nur ganz bestimmte Komponenten unterstützen:

z.B. JEditorPane, JTextArea, JTree, JTable

Das wäre mir neu. Also ich habe definitiv in eine JScrollPane schon JPanel, JLabel, JTabbedPane und diverse andere Komponenten gepackt, und das hat immer wunderbar funktioniert.

Wo hast du denn die Info her, dass JPanel beispielsweise nicht unterstützt wird?

Wo hast du denn die Info her, dass JPanel beispielsweise nicht unterstützt wird?

Wär mir aber auch recht neu dass JScrollPane keine JPanels unterstützt ... muss ich heute gleich mal testen :P

Wär mir aber auch recht neu dass JScrollPane keine JPanels unterstützt
Das wäre schon fast ein NoGo-Kriterium für das gesamte Swing Framework. Wie will ich sonst ein Eingabeformular mit, sagen wir mal, 20 Eingabefeldern untereinander darstellen?

Die bekomme ich nur in einem panel vernünftig gruppiert, und mir kann niemand erzählen, dass Sun nicht wenigstens soweit denkt, das ganze scrollable zu machen.

Ne ne, JScrollPane funktioniert mit jeder JComponent.

hey leute, keine aufregung

wahrscheinlich stand es nur beispielhaft da und ich habs für mehr gehalten...ich nehme an, dass ich was überlesen habe.

auf jeden fall habe ich jetzt die Panels in eine JTable gelegt und die dann ins scrollpane. seit dem funzt alles prima.

met :rolleyes:

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.