Announcement

Collapse
No announcement yet.

AWT: kein FlowLayout bei eingebettetem Panel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AWT: kein FlowLayout bei eingebettetem Panel

    Hallo, ich habe ein Panel mit FlowLayout konstruiert, welches meine Komponenten (Labels) wie gewünscht anordnet und einen Umbruch macht, wenn der Platz nicht ausreicht:

    Code:
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Panel;
    import java.util.StringTokenizer;
    
    public class awtFlowLayoutTest1 extends Frame {
    
    	public static void main(String[] args) {
    		awtFlowLayoutTest1 aFLT = new awtFlowLayoutTest1();
    	}
    
    	public awtFlowLayoutTest1() {
    		Panel dataLabel = new Panel(new FlowLayout(FlowLayout.LEFT, 0, 0));
    		StringTokenizer tokenizer = new StringTokenizer(
    				"Dies ist der Text mit Umbruch");
    		while (tokenizer.hasMoreTokens()) {
    			Label token = new Label(tokenizer.nextToken());
    			dataLabel.add(token);
    		}
    		add(dataLabel);
    		setVisible(true);
    	}
    }
    Aaaber: Ich möchte diese Komponente auf einem Fenster mit geschachtelten Panels darstellen, und das funktioniert nicht. Wenn man das dataLabel auf ein anderes Panel platziert, dann findet kein Umbruch statt:

    Code:
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Panel;
    import java.util.StringTokenizer;
    
    public class awtFlowLayoutTest extends Frame {
    
    	public static void main(String[] args) {
    		awtFlowLayoutTest aFLT = new awtFlowLayoutTest();
    	}
    
    	public awtFlowLayoutTest() {
    		Panel rahmen  = new Panel();
    
    		Panel dataLabel = new Panel(new FlowLayout(FlowLayout.LEFT, 0, 0));
    		StringTokenizer tokenizer = new StringTokenizer( "Dies ist der Text mit Umbruch" ); 
    		while ( tokenizer.hasMoreTokens() ) {
    		 Label token = new Label(tokenizer.nextToken());
    		 dataLabel.add(token);
    		}
    		rahmen.add(dataLabel);
    		add(rahmen);
    		setVisible(true);
    	}
    }
    => Was kann man tun, damit das FlowLayout bei der eingebetteten Komponente funktioniert?
    Zuletzt editiert von jimknopf007; 14.09.2009, 16:44. Reason: hatte zweimal den gleichen code (copy/paste...)

  • #2
    Nutze statt AWT (veraltet) Swing-Komponenten, dort ein JLabel und erzeuge dem Umbruch mittels HTML

    http://java.sun.com/docs/books/tutor...ents/html.html

    Für das visuelle Entwerfen von Oberflächen mittels Swing

    http://www.netbeans.org/features/java/swing.html
    Christian

    Comment


    • #3
      Hallo Christian Marquardt,

      danke für den Tipp. Leider muss es unbedingt AWT sein (habe ich nicht zu entscheiden...).

      Gruß
      Zuletzt editiert von Christian Marquardt; 15.09.2009, 17:23. Reason: Meinen Namen - wenn man schon so angeredet wird - berichtigt

      Comment


      • #4
        Was für ein Layout haben den rahmen und die anderen Panels? Ggf. diesen ein Layout zuweisen.
        Christian

        Comment


        • #5
          Falls ich das richtig verstanden habe, und du möchtest am "Ende" des Flowlayouts eine neue Zeile anfangen, dann ist das ExtendedFlowLayout evtl. etwas für dich: http://www.java-blog-buch.de/dflowla...zeilenumbruch/
          Java lernen => Java Blog Buch

          Comment

          Working...
          X