Editor auf Basis JFrame in ein JPanel wandeln - Problem!

Status
Nicht offen für weitere Antworten.

tortelinski

Mitglied
Hallo!

Ich habe einen Editor auf Basis einer JFrame, diese wurde durch ein JPanel ersetzt und soll es ermöglichen den Editor in ein anderes Programm einzufügen!

Hier im Kern:

Code:
// Scrolling panel with text (instance variable)
        textPane = new JTextPane();
        
        textPane.addMouseListener(new Mouse());
        
        scrollPane = new JScrollPane(textPane); 
        
        add(scrollPane, BorderLayout.CENTER); 
 
        add(menuBar, BorderLayout.NORTH);

Problem: Es erscheint ein Fenster mit Menubar und links oben ganz klein und eckig die textPane!

Was kann man da anders machen? Vorschläge?
 
vielleicht hat dein JPanel noch kein BorderLayout? Standard ist ein anderes

panel.setLayout(new BorderLayout()); oder so

ansonsten textPane vergrößeren, evtl. im Konstruktor Größe angeben,
oder mit setPreferredSize,
bzw. das JScrollPane in der Größe anpassen,

evtl. erstmal ohne JScrollPane arbeiten, nicht alles auf einmal..
 
Ne, habe ich nicht!

Das Ding verfügt über einen Konstruktor...wie setzt man das da??? 😳

Code:
public class StyledTextEditor extends JPanel  {
...
...
public StyledTextEditor() {
    	initResources();
        initComponents();
        initDocument();
 
Selbes Desaster! TextPane klein und eckig links oben!

Code:
public StyledTextEditor(LayoutManager layout)

//In der Main-Methode der anderen Klasse (GUI)

JFrame frame = new JFrame();
	        frame.add(new StyledTextEditor(new BorderLayout()));
	        frame.pack();
	        frame.setVisible(true);
 
Erfolg! Viel auszulagern! Aber es lohnt sich dann!

Code:
	        JFrame frame = new JFrame();
	        JPanel test = new JPanel();
	        StyledTextEditor edit = new StyledTextEditor();
	        edit.setLayout(new BorderLayout());
	        edit.add(edit.menuBar, BorderLayout.NORTH);
	        edit.scrollPane.setSize(600,400);
	        edit.add(edit.scrollPane, BorderLayout.CENTER); 
	        test.add(edit);
	        frame.add(test);
	        frame.pack();
	        frame.setVisible(true);
 
grr, ich sehe immer wieder leute die ihr menu von hand mit add() und nem BorderLayout.NORTH einfügen.
benutzt doch die setJMenuBar() oder setMenuBar() methode vom jframe bzw frame. dann habt ihr auch weniger probleme, und im borderlayout im north mehr platz...

so...das mal von mir...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben