JScrollPane

LeaveX

Aktives Mitglied
Hallo,

Warum funktioniert der Aufruf nicht:
Java:
iFrameHelp.add(scroll);

Hier der Code:

Java:
JInternalFrame iFrameHelp = new JInternalFrame("Hilfe", true, true);		
		iFrameHelp.setLayout(new BorderLayout());		
		desktop.add(iFrameHelp, 300);		
		font = new Font(Font.SERIF, Font.PLAIN, 14);		
		labelHelp = new JLabel(lpFrameHelp, SwingConstants.LEFT);		
		labelHelp.setFont(font);				
		
		JScrollPane scroll = new JScrollPane();
		
		iFrameHelp.add(scroll);
		
		iFrameHelp.add(BorderLayout.NORTH, labelHelp);		
		iFrameHelp.setBackground(Color.WHITE);		
		iFrameHelp.setSize(lpFrameHelpWidth, lpFrameHelpHeight);		
		iFrameHelp.setLocation((width/2)-(lpFrameHelpWidth/2), (height/2)-(lpFrameHelpHeight/2));		
		iFrameHelp.setVisible(true);


MFG
LeaveX
 

function

Bekanntes Mitglied
dein iFrame wird desktop hinzugefügt, wenn es noch "leer" ist.
dein JScollPane ist leer, wird nicht ins Layout des iFrames gesetzt.
deine adds sind falsch es muss add(Component, INT) sein.
 

DerEisteeTrinker

Bekanntes Mitglied
bei nem JScrollPane ist es so, dass du mit dem LayoutManager die Größe angibst und dem JScrollPane dann aber noch Inhalt mitgeben musst, dass er angezeigt wird. Das wird dann auf den Viewport gepackt, aber da reicht es, wenn du wieder die Methode add vom JScrollPane verwendest. Das JScrollPane wird meines Wissens nach dann mit dem Element, dass du hinzufügst komplett ausgefüllt.
 

LeaveX

Aktives Mitglied
Hallo,

JEtz hab ichs so gemacht:

Java:
JLabel label = new JLabel(lpFrameHelp);
		
		JInternalFrame iFrameHelp = new JInternalFrame("Hilfe", true, true);  
		
		JScrollPane scroll = new JScrollPane(iFrameHelp);
		
		iFrameHelp.setLayout(new BorderLayout());
		
		iFrameHelp.setSize(300, 300);
		
		iFrameHelp.add(BorderLayout.NORTH, scroll);
		
		iFrameHelp.add(label);
		
		desktop.add(iFrameHelp, new Integer(300));
		
		iFrameHelp.setVisible(true);

Nur bekomm ich eine Fehlermeldung:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding container's parent to itself
	at java.awt.Container.checkAddToSelf(Unknown Source)
	at java.awt.Container.addImpl(Unknown Source)
	at java.awt.Container.add(Unknown Source)
	at javax.swing.JInternalFrame.addImpl(Unknown Source)
	at java.awt.Container.add(Unknown Source)
	at jav5N.lektion1.SwingFrame.showHelp(SwingFrame.java:323)
	at jav5N.lektion1.SwingFrame$5.actionPerformed(SwingFrame.java:230)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
 
G

Gast2

Gast
Die Fehlermeldung sagt doch alles aus du willst das iFrame sich selber hinzufügen über die JScrollPane?!?

Java:
JInternalFrame iFrameHelp = new JInternalFrame("Hilfe", true, true);  
        
        JScrollPane scroll = new JScrollPane(iFrameHelp);
        
        iFrameHelp.add(BorderLayout.NORTH, scroll);
???:L


hier muss die scrollpane rein
Java:
desktop.add(scroll, new Integer(300));
 

LeaveX

Aktives Mitglied
Stimmt sry.

Java:
 JScrollPane scroll = new JScrollPane();
Wenn ich dass jetzt leer lasse, wird der JScrollPane noch immer nich angezeigt.
 

LeaveX

Aktives Mitglied
So habs, sry hatte nen Denkfehler.

Java:
JLabel label = new JLabel(lpFrameHelp);
		
		JInternalFrame iFrameHelp = new JInternalFrame("Hilfe", true, true);  
		
		JLayeredPane pane = new JLayeredPane();
		
		pane.setLayout(new BorderLayout());
		
		pane.add(BorderLayout.CENTER, label);
		
		JScrollPane scroll = new JScrollPane(pane);
		
		iFrameHelp.setSize(300, 300);
		
		iFrameHelp.add(scroll);
		
		desktop.add(iFrameHelp, 300);
		
		iFrameHelp.setVisible(true);
 

Ähnliche Java Themen

Neue Themen


Oben