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

Veröffentlicht

Hallo zusammen,

ich habe hier ein kleines Problem.

Und zwar möchte ich AWT- oder Swing Komponenten (oder beides) einer Jpanel zuweisen. Nur möchte ich diesen JPanel in einer JScrollPane darstellen lassen.

Das Problem was ich habe ist, dass zwar die Komponenten in der Jpanel vorhanden sind und dieser Jpanel auch in der JScrollPane vorhanden ist, nur leider sieht man die Komponenten nicht auf Anhieb.:(

Erst wenn ich mit der Maus blind in mein JFrame klicke, erscheint (wenn ich getroffen habe) die Komponente.

Hier ist zur besseren Veranschaulichung der Source-Code:

////////////////////////////////////////////////////////////////////////////////////////////////////////////

public class Untitled1 extends JFrame

{

public Untitled1()

{

this.setTitle("HelloWorldSwing");

GridLayout g = new GridLayout(10,10);

JPanel panel = new JPanel(g);

panel.setSize(300,300);

JLabel label = new JLabel("Hello World");

JCheckBox[] a = new JCheckBox[100];

JScrollPane jscroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,

JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

jscroll.setSize(30,30);

for (int i = 0; i< 100; i++)

{

a = new JCheckBox("BB");

a.setVisible(true);

panel.add(a);

}

panel.setBorder(new EtchedBorder(new Color(255,0,0), new Color(0,0,255)));

jscroll.add(panel);

this.getContentPane().add(jscroll);

jscroll.show(true);

jscroll.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.show();

this.setSize(500,500);

this.setVisible(true);

}

public static void main(String[] args)

{

Untitled1 u = new Untitled1();

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////

DANKE fuer die Hilfe,

helmito

Hallo!

Original geschrieben von helmito

jscroll.add(panel);

Die Methode add kommt von Component und hat nichts mit dem was du willst zu tun.

Entweder du übergibst das panel im JScrollPane Konstruktor oder du setzt das Panel nachträglich mit:

jscroll.setViewportView(panel);

Gruß Jaraz

Hi,

Danke fuer die Info!!!

kannst du mir auch vielleicht sagen, wie ich die Komponenten unsichtbar machen kann, wenn diese beim Betätigen der ScrollPane eigentlich ausserhalb des Werte-Bereiches geschoben werden???

Gruesse,

helmito

Wozu?

Vielleicht hab ich mich unglücklich ausgedrückt.

Mein Problem ist:

Ich hab in dem JPanel einen Button, der eigentlich nicht komplett zu sehen sein dürfte, weil er zu groß ist (Der Button sollte eigentlich nur bis zum Rahmen der JScrollPane sichtbar sein).

Bei mir jedoch kann man den ganzen Button sehen, obwohl der Button bur bis zum Rahmen dargestellt sein sollte. Er übermalt also den Rahmen.

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.