Anordnungsprobleme bei JEditorPane

Status
Nicht offen für weitere Antworten.

Infostudent

Mitglied
Hallo,


ich habe ein JFrame, das in mehrere Panel aufgeteilt ist. Es besteht zunächst aus einem BorderLayout, indessen Center eine Liste ist. Im East-Bereich hab ich dann ein zweigeteiltes GridLayout eingefügt, in dessen oberen Teil ein Img-JLabel ist und im unteren Teil ein JEditorPane.

Das ganze funktioniert auch ganz gut, aber wenn ich die Größe des Fensters ändere (maximieren oder einfach nur ein bisschen verändern), wird die ganze EditorPane-Komponente plötzlich riesig groß. Sie liegt dann teilweise unterhalb der JList, das heißt, geht dann also vom EAST- bis zum CENTER- (oder gar WEST-) Teil.

Kennt jemand das Problem bzw. weiß jemand wie man es löst? Muss ich das JEditorPane eventuell irgendwie fixieren? Oder muss man eventuell noch den Zeilenumbruch aktivieren (dazu hab ich aber keine Methode gefunden). Finde es allgemein komisch, wie sich überhaupt zwei Komponenten überlagern können, zumal alles OK ist, solange das Fenster in seiner Größe nicht verändert wird.


mfg,
Infostudent.
 
G

Guest

Gast
Ich vermute, dir geht es um sowas. Schau dir das Beispiel an.
Hauptproblem bei dir ist vermutlich das fehlende setPreferredSize(...)
Code:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class LayoutTest extends JFrame
{
   private static final long serialVersionUID = 1L;

   public LayoutTest()
   {
      super("LayoutTest");
      initUI();
   }

   private void initUI()
   {
      JPanel c = (JPanel)getContentPane();
      c.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
      
      JList list = new JList();
      JScrollPane listScrollPanel = new JScrollPane(list);
      JTextPane text = new JTextPane();
      JScrollPane textScrollPanel = new JScrollPane(text);
      textScrollPanel.setPreferredSize(new Dimension(150, 50));  // <-- das fehlt bei dir vermutlich
      JLabel label = new JLabel("BlaBla");

      JPanel textPanel = new JPanel(new BorderLayout());
      textPanel.setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 0));
      textPanel.add(label, BorderLayout.NORTH);
      textPanel.add(textScrollPanel, BorderLayout.CENTER);
      
      c.add(listScrollPanel, BorderLayout.CENTER);
      c.add(textPanel, BorderLayout.EAST);
   }
   
   /*
    Alternative mit GridBagLayout
   private void initUI()
   {
      JPanel c = (JPanel)getContentPane();
      c.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
      c.setLayout(new GridBagLayout());
      
      JList list = new JList();
      JScrollPane listScrollPanel = new JScrollPane(list);
      JTextPane text = new JTextPane();
      JScrollPane textScrollPanel = new JScrollPane(text);
      JLabel label = new JLabel("BlaBla");
      
      c.add(listScrollPanel, new GridBagConstraints(0, 0, 1, 2, 1.0, 1.0, 
         GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0,0,0,0), 0, 0));
      c.add(label, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, 
         GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,3,0,0), 0, 0));
      c.add(textScrollPanel, new GridBagConstraints(1, 1, 1, 1, 0.0, 1.0, 
         GridBagConstraints.NORTHWEST, GridBagConstraints.VERTICAL, new Insets(0,3,0,0), 150, 0));
   }
   */
   public static void main(String[] args)
   {
      try { 
         final LayoutTest w = new LayoutTest(); 
         w.addWindowListener( 
           new WindowAdapter() { 
             public void windowClosing(WindowEvent e) { 
               w.setVisible(false); 
               System.exit(0); 
             } 
           } 
         ); 
         w.setSize(600, 400); 
         w.setLocationRelativeTo(null); 
         w.setVisible(true); 
       } 
       catch(Exception e) { 
         e.printStackTrace(); 
       } 
   }
}
 
G

Guest

Gast
Noch eine Anmerkung. Bei BorderLayout muss man in allen Ecken immer die bevorzugte Größe
der Komponenten angeben. Nur der CENTER-Bereich nimmt den restlichen Platz ein und
ändert seine Größe, wenn man die Fenstergröße ändert.
 

André Uhres

Top Contributor
Anonymous hat gesagt.:
..Bei BorderLayout muss man in allen Ecken immer die bevorzugte Größe der Komponenten angeben..
Es handelt sich zwar um "setPreferredSize", aber
links und rechts wird die Höhe vom Panel übernommen:
Code:
new Dimension(100, 0)
oben und unten wird die Breite vom Panel übernommen:
Code:
new Dimension(0, 300)
Bei einer Grössenveränderung passen sich die entspechenden Ausdehnungen an.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Vertikale Anordnungsprobleme AWT, Swing, JavaFX & SWT 2
L Anordnungsprobleme AWT, Swing, JavaFX & SWT 4
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
E wie Schriftfarbe in JEditorPane verändern? AWT, Swing, JavaFX & SWT 10
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
N JEditorPane und automatische Scrollposition AWT, Swing, JavaFX & SWT 2
K JEditorPane Text einfügen AWT, Swing, JavaFX & SWT 4
B JEditorPane lädt keine Schriftfarbe in HTML AWT, Swing, JavaFX & SWT 2
J JEditorPane mit HTML füllen AWT, Swing, JavaFX & SWT 2
C JEditorPane und Gifs AWT, Swing, JavaFX & SWT 2
B Swing JEditorPane ohne Zeilenumbruch nach InputStream AWT, Swing, JavaFX & SWT 2
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
H Swing JEditorPane und HTML AWT, Swing, JavaFX & SWT 3
S JEditorPane Zeilen zählen AWT, Swing, JavaFX & SWT 5
C Swing JEditorPane: Caret nach Rechtsklick neu setzen AWT, Swing, JavaFX & SWT 4
X JEditorPane Größe in JDialog automatisch anpassen AWT, Swing, JavaFX & SWT 2
C JTextPane / JEditorPane ohne Keywords farbig machen AWT, Swing, JavaFX & SWT 4
S JEditorPane oder JTextPane? AWT, Swing, JavaFX & SWT 2
M Swing JEditorPane: Text formatieren AWT, Swing, JavaFX & SWT 2
F Swing JEditorPane Bild mittig einbinden AWT, Swing, JavaFX & SWT 5
H Swing HTML in einem JEditorPane zeilenweise hinzufügen ohne Inhalt jedes Mal neu zu laden AWT, Swing, JavaFX & SWT 4
B 2D-Grafik Zeilen drehen im JEditorPane AWT, Swing, JavaFX & SWT 3
H Plain Text in RTF JEditorPane? AWT, Swing, JavaFX & SWT 3
D Informationen über JEditorPane gesucht AWT, Swing, JavaFX & SWT 2
C Swing Scrollbalken in JEditorPane - WIE? AWT, Swing, JavaFX & SWT 3
destroflyer Swing UTF-8 in JEditorPane darstellen AWT, Swing, JavaFX & SWT 5
J Swing JEditorPane flackert AWT, Swing, JavaFX & SWT 2
F Swing Performanceproblem mit JEditorpane AWT, Swing, JavaFX & SWT 3
S Swing HTML-Text in JEditorPane einfärben AWT, Swing, JavaFX & SWT 5
I JTextPane und Hyperlink (ohne JEditorPane) AWT, Swing, JavaFX & SWT 5
P Swing JEditorPane mit HTMLDocument - Text hinzufügen AWT, Swing, JavaFX & SWT 2
T Swing JEditorPane Groesse berechnen AWT, Swing, JavaFX & SWT 2
N Swing JEditorPane mit Farbe und Font AWT, Swing, JavaFX & SWT 2
T Swing JTextArea, JTextPane, JEditorPane...Unterschied?! AWT, Swing, JavaFX & SWT 3
B JEditorPane - Absätze werden nicht gespeichert AWT, Swing, JavaFX & SWT 12
K Verweise in JEditorPane AWT, Swing, JavaFX & SWT 6
B JEditorPane - Text und Graphik in HTML speichern AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane wort zu lang AWT, Swing, JavaFX & SWT 11
X Swing Inhalt einer JEditorPane in Datei abspeichern AWT, Swing, JavaFX & SWT 5
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
Developer_X Swing JEditorPane.paste(Lokale_HTML); AWT, Swing, JavaFX & SWT 11
W Swing dynamisch Buttons in JEditorPane erstellen AWT, Swing, JavaFX & SWT 2
H JScrollPane (mit JEditorpane ) resizing AWT, Swing, JavaFX & SWT 2
E Swing File lesen und in JEditorpane AWT, Swing, JavaFX & SWT 2
D GridBagLayout und JEditorPane (mehrere fragen) AWT, Swing, JavaFX & SWT 2
S JEditorPane soll HTML und dann Text anzeigen..? AWT, Swing, JavaFX & SWT 5
T HTML und JEditorPane AWT, Swing, JavaFX & SWT 6
Daniel_L jEditorPane - Formatierten Text in Zwischenablage kopieren? AWT, Swing, JavaFX & SWT 2
R JEditorPane Schriftart und Schriftgröße AWT, Swing, JavaFX & SWT 3
K Instanz von JEditorPane starten AWT, Swing, JavaFX & SWT 3
W HTML-Text mit relativer URL in JEditorPane einlesen AWT, Swing, JavaFX & SWT 10
J Flackern in JEditorPane() AWT, Swing, JavaFX & SWT 14
& eigene Schriftart in JEditorpane AWT, Swing, JavaFX & SWT 2
M JEditorPane lädt HTML ohne Bilder AWT, Swing, JavaFX & SWT 2
M JEditorPane lädt HTML ohne Bilder AWT, Swing, JavaFX & SWT 2
DeeDee0815 JEditorPane + HTML + <img src=file> + JAR = FALSE AWT, Swing, JavaFX & SWT 3
G JEditorPane + F6 AWT, Swing, JavaFX & SWT 2
ChMaster JEditorPane / HTMLEditorKit AWT, Swing, JavaFX & SWT 3
G JEditorPane | Homepage wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 8
J JEditorPane zeigt nicht alles AWT, Swing, JavaFX & SWT 2
I JEditorPane vorladen der Seiten unterbinden AWT, Swing, JavaFX & SWT 2
P JEditorPane mit HTMLEditorKit Text ausrichten AWT, Swing, JavaFX & SWT 2
T Projekt - ChatClient - JEditorPane - Smilies, Vektor AWT, Swing, JavaFX & SWT 2
N java.awt.Color zu HTML Farbcode (JEditorPane) AWT, Swing, JavaFX & SWT 1
T Grösse einer JEditorPane ändern AWT, Swing, JavaFX & SWT 5
G JEditorPane Zeilenumbruch verhindern AWT, Swing, JavaFX & SWT 2
F wie funktionier JEditorPane AWT, Swing, JavaFX & SWT 8
M jEditorPane String to html AWT, Swing, JavaFX & SWT 2
T DataFlavor für HTML-formatierten Text im JEditorPane AWT, Swing, JavaFX & SWT 8
G Welchen Listener für JEditorPane ? AWT, Swing, JavaFX & SWT 3
G HTML aus JEditorPane drucken AWT, Swing, JavaFX & SWT 2
F Frage zu JEditorPane und Text einfügen AWT, Swing, JavaFX & SWT 2
G JEditorPane HTML-Email versenden AWT, Swing, JavaFX & SWT 2
C getText() sinnlos bei HTMLEditorKit und JEditorPane! AWT, Swing, JavaFX & SWT 11
F Das Standardbild beim JEditorPane ersetzen? AWT, Swing, JavaFX & SWT 8
M Image-Objekte in JEditorPane anzeigen? AWT, Swing, JavaFX & SWT 3
U Bild in JEditorPane oder Aus "" mach' "/&quot AWT, Swing, JavaFX & SWT 2
I how to implement.(About JTable and the JEditorPane) AWT, Swing, JavaFX & SWT 6
S JEditorPane HTML-Text auslesen AWT, Swing, JavaFX & SWT 2
M JEditorPane und HyperLinks AWT, Swing, JavaFX & SWT 9
B JEditorPane: Höhe für bestimmte Breite bestimmen AWT, Swing, JavaFX & SWT 4
S Link in JEditorPane AWT, Swing, JavaFX & SWT 5
M JEditorPane und Bild als html? AWT, Swing, JavaFX & SWT 7
F Link aus JEditorPane ausführen AWT, Swing, JavaFX & SWT 2
S HTML-Datei in Anwendung (JEditorPane) AWT, Swing, JavaFX & SWT 5
M Jeditorpane + zeilenumbruch AWT, Swing, JavaFX & SWT 2
N File von HDD in JEditorPane laden? AWT, Swing, JavaFX & SWT 2
B In JScrollPane eingebettetes JEditorPane scrollen AWT, Swing, JavaFX & SWT 2
L Image Problems with JEditorPane AWT, Swing, JavaFX & SWT 7
D Kann jeditorPane CSS Style-Sheets und javascript AWT, Swing, JavaFX & SWT 2
T JEditorPane-content drucken AWT, Swing, JavaFX & SWT 2
T HTML in JEditorPane darstellen AWT, Swing, JavaFX & SWT 5
C JEditorPane, HTML EditorKit und HTMLDocument AWT, Swing, JavaFX & SWT 8
bernd Zeilenumbruch in JEditorPane AWT, Swing, JavaFX & SWT 10
S JEditorPane: Benachrichtigung, wenn Inhalt geladen AWT, Swing, JavaFX & SWT 2
M JEditorPane und Strg - z? AWT, Swing, JavaFX & SWT 2
S JEditorPane setText() Problem mit String übergeben AWT, Swing, JavaFX & SWT 3
S JEditorPane Tags löschen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben