editorPane bleibt zu klein trotz setPage

MBoerner

Mitglied
guten tag!
ich habe eine Funktion showTest(), die in einem JinternalFrame ein editorPane öffnet und dort die datei "test.html" reinlädt. Diese Datei enthält einen 2 zeiligen Text.
Trotz scrollPane bleibt der Editorpane ganz klein, erstmal sogar leer. Erst wenn ich das Parentfenster vergrößere, erscheinen die 4 Zeilen aber nur so groß, wie die Test es braucht.
Ich möchte, dass es grundsätzlich den ganzen Frame ausfüllt, egal, wieviel Text drin ist.
Kann mir jemand sagen, wo ich den Fehler mache?
Danke sehr!
Hier ist der Quellcode der Funktion. "this" ist ein JFrame
Java:
private void  showtest () {
        JEditorPane editorPaneHilfe;
        JPanel currPanel = new JPanel();
       //Größe ermittelt, um das Fenster zu positionieren
        int parentWidth = this.getWidth();
        int parentHeight = this.getHeight();
        int hfWidth= this.getWidth()*2/3;
        int hfHeight = this.getHeight()*2/3;
        int ParentLocationX= this.getLocation().x;
        int ParentLocationY= this.getLocation().y;
        int childLocationX = ParentLocationX + parentWidth/2 - hfWidth/2;
        int childLocationY = ParentLocationY + parentHeight/2 - hfHeight/2;
        URL urlHilfe= null;
      
        try {
            urlTest = new URL( "file:///C:/test.html" );          
        }
        catch (MalformedURLException mfue)
        {
            System.out.println(mfue.getMessage());
        }
        // damit der editorPane alles ausfüllt, funktioniert aber nicht:
        currPanel.setLayout(new FlowLayout());
        // testFenster erzeugen und mittig positionieren
        desktop=getLayeredPane();
        JInternalFrame testFrame = new JInternalFrame ("TEST");
        testFrame.setSize(hfWidth,hfHeight);
        testFrame.setLocation(childLocationX,childLocationY );
        desktop.add(testFrame, JLayeredPane.DEFAULT_LAYER);

        //EditorPane in diesem internalFrame platzieren, um eine html-text reinladen zu können
        editorPaneHilfe=new JEditorPane("text/html", "");
        editorPaneHilfe.setEditable(false); //text nur anzeigen
        editorPaneHilfe.setBorder(null);
        JScrollPane editorSPH=new JScrollPane(editorPaneHilfe);
        currPanel.add(BorderLayout.CENTER, editorSPH);
        testFrame.getContentPane().add(BorderLayout.CENTER, currPanel);

        // Inhalt der Textdatei hilfe.html in den EditorPane laden
        try {
            editorPaneHilfe.setPage(urlHilfe);
        } catch (IOException ioe) {
            jtfStatus.setText("IOException: "    +ioe.getMessage());
        }
        testFrame.setVisible(true);
        editorSPH.setSize(200,200);//bringt auch nichts, hätte ich sowieso lieber ohne feste größe

    }

Die htmlseite sieht so aus:
HTML:
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hilfe</title>
  </head>
  <body>
    <p>Dies ist testtext<br>
    Zeile1<br>
    zeile2<br>
    zeile3<br>.
    </p>
  </body>
</html>
 
Zuletzt bearbeitet von einem Moderator:

MBoerner

Mitglied
Meinst du, weil ich URL "urlHilfe" deklariert habe und dann "urlTest" benutze? Das ist leider nur ein Fehler, der sich beim abschreiben in den Forumbeitrag eingeschlichen hat. Sorry.
Eigentlich habe ich
Code:
URL urlTest= null;

try {
urlTest = new URL( "file:///C:/test.html" );
}...
Aber wie kann ich festlegen, dass das EditorPane genau sogroß ist, wie JFrame, indem es sich befindet (mit einem JPanel dazwischen). Ich hatte gedacht, dass ein flowLayout für das Panel es bewirken würde, aber es bleibt klein.
Und der Text von der HTML erscheint erst, wenn ich das Fenster zum ersten Mal verschiebe oder ihre Größe verändere. Ich verstehe das nicht.
Vielen Dank für die Hilfe
 
Zuletzt bearbeitet von einem Moderator:

mihe7

Top Contributor
Java:
import java.awt.*;
import java.beans.PropertyVetoException;
import java.io.*;
import java.net.*;
import javax.swing.*;

public class Test {

    private JDesktopPane desktop;

    private void createAndShowGUI() {
        desktop = new JDesktopPane();
        desktop.setPreferredSize(new Dimension(600,400));
        showtest();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(desktop);    
        frame.pack();
        frame.setVisible(true);

    }

    private void showtest() {
        JEditorPane editorPaneHilfe;
        JPanel currPanel = new JPanel();
        // damit der editorPane alles ausfüllt, funktioniert aber nicht:
        JInternalFrame testFrame = new JInternalFrame("TEST");
        testFrame.setResizable(true);
        editorPaneHilfe = new JEditorPane("text/html", null);
        editorPaneHilfe.setEditable(false);
        testFrame.getContentPane().add(BorderLayout.CENTER, new JScrollPane(editorPaneHilfe));

        testFrame.setSize(200, 200);
        testFrame.setLocation(0, 0);
        desktop.add(testFrame, JLayeredPane.DEFAULT_LAYER);
        testFrame.setVisible(true);

        try {
            testFrame.setMaximum(true);
        } catch (PropertyVetoException ex) {
            ex.printStackTrace();
        }
       
        try {
            editorPaneHilfe.setPage("https://www.google.de");
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().createAndShowGUI());
    }
}
 

MBoerner

Mitglied
Danke schön, da kann ich daraus was lernen.
Aber es ist eigentlich nicht die Funktion, die ich wollte: Nicht das Hilfe-Fenster soll maximiert werden, sondern der editorPane soll im JInternalFrame die ganze Fläche ausfüllen.
Aber danke trotzdem,
 

mihe7

Top Contributor
Dazu kannst Du editorPane im CENTER eines BorderLayouts setzen (s. Code). FlowLayout ist hierfür nicht geeignet.
 

MBoerner

Mitglied
Ja vielen Dank,
das klappt jetzt.
Ich habe für das Panel ein GridLayout(1,1) genommen und dein CENTER Vorschlag udn seitdem ist es, wie ich das möchte.
Herzlichen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M EditorPane Inhalt anders als er soll! AWT, Swing, JavaFX & SWT 2
L Klick auf JTable -> EditorPane manipulieren, Fragen zu TableModel AWT, Swing, JavaFX & SWT 9
G Entfernen von Tags in EditorPane AWT, Swing, JavaFX & SWT 6
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
T JFileChooser ist Englisch und bleibt Englisch und bleibt Englisch... AWT, Swing, JavaFX & SWT 15
H Textfield bleibt im Hintergrund AWT, Swing, JavaFX & SWT 2
D JavaFX TableView bleibt leer. AWT, Swing, JavaFX & SWT 8
T Swing Button bleibt grau [=> UI hat sich aufgehängt, Aufgabe in Thread auslagern] AWT, Swing, JavaFX & SWT 3
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
W Java Form bleibt Weiß AWT, Swing, JavaFX & SWT 7
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
K Swing Warum bleibt das Image immer gleich AWT, Swing, JavaFX & SWT 4
T 2D-Grafik gezeichnetes Bild verschieben - rand bleibt sichtbar AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Bild bleibt im Hintergrund bei Diashow AWT, Swing, JavaFX & SWT 3
T Swing JProgressBar Indeterminate bleibt stehen bei neuem Fenster AWT, Swing, JavaFX & SWT 6
S Java 3d Fenster bleibt grau AWT, Swing, JavaFX & SWT 4
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
B JButton - "pressed" bleibt AWT, Swing, JavaFX & SWT 4
P Swing JTextArea - beim neuzeichnen bleibt manchmal weißer Kasten AWT, Swing, JavaFX & SWT 10
N JTable, Zeile bleibt immer selektiert.... AWT, Swing, JavaFX & SWT 3
S Swing JFrame neuzeichnen - bleibt grau AWT, Swing, JavaFX & SWT 18
P Swing GridBagLayout bleibt nicht so wie es ist :( AWT, Swing, JavaFX & SWT 8
B drawImage auf JPanel bleibt ohne Auswirkungen AWT, Swing, JavaFX & SWT 9
1 JFrame bleibt leer, keine Ahnung warum AWT, Swing, JavaFX & SWT 7
A Swing JTable bleibt leer AWT, Swing, JavaFX & SWT 2
A SWT Composite bleibt leer AWT, Swing, JavaFX & SWT 7
I Swing - Problem mit ActionListener (Programm bleibt stehen) AWT, Swing, JavaFX & SWT 2
M Dialag oder Frame bleibt unsichtbar AWT, Swing, JavaFX & SWT 10
S statusleiste bleibt leer und gui hängt AWT, Swing, JavaFX & SWT 3
Bernasconi JDialog - Inhalt bleibt weiß AWT, Swing, JavaFX & SWT 8
Paule JFrame bleibt leer, wieso? AWT, Swing, JavaFX & SWT 2
F JFrame bleibt grau AWT, Swing, JavaFX & SWT 24
M Wo bleibt mein ScrollPane? AWT, Swing, JavaFX & SWT 3
B JList bleibt einfach mal stehen AWT, Swing, JavaFX & SWT 2
M Es bleibt immer noch eine Javaw instanz zurück AWT, Swing, JavaFX & SWT 3
MiMa JavaFX Fenstertitel zu klein. AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
S Swing Schrift sehr klein Ubuntu/eclipse AWT, Swing, JavaFX & SWT 18
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
N GUI zeigt alles klein an. AWT, Swing, JavaFX & SWT 7
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
S LayoutManager TextField verschwindet / wird klein AWT, Swing, JavaFX & SWT 4
A Panel zu klein AWT, Swing, JavaFX & SWT 14
R Swing Komponenten klein angezeigt AWT, Swing, JavaFX & SWT 10
Y Swing GridbagLayout JTextfield zu klein AWT, Swing, JavaFX & SWT 5
N Fenster beleiben klein AWT, Swing, JavaFX & SWT 4
N SWT Text pack() macht Text zu klein AWT, Swing, JavaFX & SWT 2
ARadauer spalten überschriften von jtable sehr klein AWT, Swing, JavaFX & SWT 2
K JFrame zu klein AWT, Swing, JavaFX & SWT 4
B scrollbare jtoolbar sobald fenster zu klein wird AWT, Swing, JavaFX & SWT 5
L Button groß bzw. klein ziehen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben