V-Hybrid aus JPane + JScrollPane - gibts so was?

Status
Nicht offen für weitere Antworten.

DocMcFly

Bekanntes Mitglied
Hallo,

Mein Problem sieht folgendermaßen aus:

Ich hab ein Textfeld und darunter noch andere Komponenten. Das ganze mit einem GridBagLayout layoutet.

Wenn die unteren Komponenten immer mehr werden, reicht das JPanel nicht mehr aus und unten fehlt die Hälfte.

:idea: Also hab ich ein JScrollPane drum rum gepackt und dann funktionierte es ;-)

:!: Blöderweise steht gelegentlich auch mal gaaaanz viel Text in dem oben genannten Textfeld. Dann malt mir das JScrollPane einen horizontalen Scrollbalken. Das sieht aber nicht sehr elegant aus.

Mit der Policy kann ich den horizontalen Scrollbalken abschalten, aber das Textfeld wird damit nicht am Rand beendet. Das ist auch doof - denn da hinter ist ein Button. Der ist dann nicht mehr erreichbar.

Ich such nun ein Panel, welches sich horizontal wie ein JPanel verhält und vertikal wie ein JScrollPane...

Gibts so was :?:

Danke fürs Lesen und für Antworten...
Gruß Clemens
 

DocMcFly

Bekanntes Mitglied
Hat jemand nen Plan, wie die Größen der einzelnen Komponenten berechnet werden?

Wie macht das GridBagLayout das?

Gruß Clemens
 
G

Guest

Gast
Das da löst dein Problem.
Code:
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER)
Und GridBagLayout ist so ziemlich der komplizierteste LayoutManager in Java. Den hier bis ins Detail zu
beschreiben würde in einem Buch ausarten.
 

DocMcFly

Bekanntes Mitglied
nein tut es leider nicht. :cry:

Aus irgendeinem Grund geht der Inhalt über das JScrollPane hinüber.

Und wenn ich dann die Scrollbar, mittels Policy abschalte, komme ich nicht mehr an den rechten Rand. (Hab ich aber schon beschrieben. :(


ich hab jetzt einen eigenen ViewPort geschrieben - mit dem klappt das... nur leider ist das Konstrukt extrem langsam. Hat jemand ne Idee?

Code:
package de.ptb.exinfo.paz.xml2form.module.tools;

import java.awt.Dimension;
import javax.swing.JViewport;

public class VViewPort extends JViewport {

  public VViewPort() {
    super();
  }

  public Dimension getViewSize() {
    
      Dimension _superViewSize = super.getViewSize();
      Dimension _superSize = super.getSize();
      super.getView().setSize((int) _superSize.width, (int) _superViewSize.getHeight());
      _superViewSize.width = _superSize.width;
      this.superViewSize = _superViewSize;
    
    return this.superViewSize;
  }
}


Gruß Clemens
 

DocMcFly

Bekanntes Mitglied
hab jetzt mal nen Zähler eingebaut...

Wie ich vermutet hab... die Methode getViewSize() wird tausende mal aufgerufen.

Dafür ist

Code:
super.getView().setSize((int) _superSize.width, (int) _superViewSize.getHeight());

verantwortlich ...

Ich forsche weiter ... weiter bitte ich um Hilfe...

Gruß Clemens
 

DocMcFly

Bekanntes Mitglied
Hab so ne Art Lösung... für folgendes Problem:

JTextfield + JButton in einer Reihe in einem JScrollPane.

Bei sehr viel Text im JTextfield zeichnet der JScrollPane eine horizontale JScrollBar. In einem einfachen JPanel würde das nicht passieren. JTextfield würde den Text nur teilweise anzeigen und man könnte drin rum scrollen (Mit rechter und linker Cursor-Taste).

Die horizontale JScrollBar zerreißt das ganze Layout. :noe:

Darum muss man dem JViewPort in JScrollPane beibringen, das er virtuell nur so weit nach rechts geht, wie Platz für den JScrollpane da ist.

Dazu muss man folgendermaßen JViewPort ableiten und dem JScrollpane mit setViewPort beibringen.

Code:
public class VerticalViewPort extends JViewport {
  public VerticalViewPort () {
    super();
  }

  public Dimension getViewSize() {
    // Virtuelle Größe 
    Dimension _superViewSize = super.getViewSize();
    // reale Größe
    Dimension _superSize = super.getSize();

    // Vertikal größte  und Horizontal kleinste Größe nehmen...
    _superViewSize.width = Math.min((int)_superViewSize.width, (int)_superSize.width);
    _superViewSize.height = Math.max((int)_superViewSize.height, (int)_superSize.height);
    
    // Damit es keine Endlosschleife gibt, kurz raus nehmen aus dem Viewport.
    // So wird der Listener deaktiviert...
    Component _component = super.getView();
    this.remove(_component);
    _component.setSize(new Dimension(_superSize.width, (int)_superViewSize.height));
    // Dann wieder rein damit
    this.setView(_component);
     
    // Ach ja die Größe noch wieder zurück geben ;-)
    return _superViewSize;
  }
}


Vielleicht hilft's jemanden...

Gruß Clemens
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Swing JPane und JScrollpane in JSplitpane-Seite: Scrollen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Swing Scrollen über JPane AWT, Swing, JavaFX & SWT 20
G JList auf einem JPane mit JSrollPane AWT, Swing, JavaFX & SWT 4
P [Layout] GridbagLayout: JScrollPane in JPane AWT, Swing, JavaFX & SWT 2
W JTree je nach selektion JPane ein und ausblenden AWT, Swing, JavaFX & SWT 7
K Component einfügen in JPane AWT, Swing, JavaFX & SWT 5
N Problem mit JScrollPane und JPane(FlowLayout) AWT, Swing, JavaFX & SWT 4
N JPane in JFrame Größe AWT, Swing, JavaFX & SWT 5
M Canvas, JPane bzw. JFrame als Zeichenfläche AWT, Swing, JavaFX & SWT 2
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
B Swing JScrollPane scrollt nicht AWT, Swing, JavaFX & SWT 10
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
N Swing JScrollPane mit Tastatur bedienen? AWT, Swing, JavaFX & SWT 0
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
MaxG. Swing JScrollPane AWT, Swing, JavaFX & SWT 10
Soloeco Swing JScrollPane AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
J JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 5
B LayoutManager GridBagLayout und JScrollPane AWT, Swing, JavaFX & SWT 5
Thallius JScrollPane Scrollpos setzen nach Neuzeichnen AWT, Swing, JavaFX & SWT 3
P MalProgramm mit JScrollPane und Canvas AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
V JScrollPane im zur Laufzeit verändernden JFrame AWT, Swing, JavaFX & SWT 0
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
Bluedaishi JScrollpane AWT, Swing, JavaFX & SWT 0
L JScrollPane scrollt nicht !! AWT, Swing, JavaFX & SWT 3
F JScrollPane Position setzen (x=0, y=0) AWT, Swing, JavaFX & SWT 2
R JScrollPane überdeckt JPanel? AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
S JScrollPane und BorderLayout AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
F JTable mit JScrollPane AWT, Swing, JavaFX & SWT 4
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
J Swing JTextPane mit JScrollPane auf JPanel scrollen nicht AWT, Swing, JavaFX & SWT 6
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
B Swing JPanel in JScrollPane einfügen AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Transparentes JScrollPane AWT, Swing, JavaFX & SWT 0
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
A Swing JScrollPane Problem AWT, Swing, JavaFX & SWT 6
H Swing JScrollPane mit "viel Inhalt" scrollt zu langsam (inkl. See-For-Yourself.jar :D) AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane in JScrollPane - Problem AWT, Swing, JavaFX & SWT 3
K Bug in JScrollPane? AWT, Swing, JavaFX & SWT 4
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
M JScrollPane Header AWT, Swing, JavaFX & SWT 3
G JScrollPane über JScrollPane AWT, Swing, JavaFX & SWT 2
V LayoutManager JScrollPane verwirft Elementanordnung AWT, Swing, JavaFX & SWT 3
B JScrollPane Problem AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane AWT, Swing, JavaFX & SWT 7
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
F 2D-Grafik Skalieren der Scrollbars beim Zoomen einer JScrollPane AWT, Swing, JavaFX & SWT 4
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
C jPanel auf jScrollPane zentrieren AWT, Swing, JavaFX & SWT 3
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
S JScrollPane reagiert nicht AWT, Swing, JavaFX & SWT 3
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
D LayoutManager JScrollPane mit dynamischem Inhalt AWT, Swing, JavaFX & SWT 8
P Swing JScrollpane AWT, Swing, JavaFX & SWT 2
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
V Swing JScrollPane Viewport verschieben AWT, Swing, JavaFX & SWT 2
J JScrollPane Probleme AWT, Swing, JavaFX & SWT 3
S Swing JScrollPane verliert Scrollbars AWT, Swing, JavaFX & SWT 5
D Swing JTable in JScrollpane beliebig verbreitern AWT, Swing, JavaFX & SWT 5
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
xehpuk Swing Line-wrapping von JTextPane (in JScrollPane) AWT, Swing, JavaFX & SWT 3
M JScrollPane Problem AWT, Swing, JavaFX & SWT 6
S Swing JScrollpane und ViewPort AWT, Swing, JavaFX & SWT 4
D JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 12
X JScrollPane funzt net... AWT, Swing, JavaFX & SWT 5
H jscrollpane AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen

Neue Themen


Oben