# Gestaltung von JApplets



## Guest (1. Feb 2006)

Hallo!
Ich habe Probleme bei der Gestaltung von JApplets. Nehmen wir an, ich will ein Applet
mit folgenden Komponenten entwerfen: zwei Jlabels nebeneinander, dann unten drei Buttons
und dann ganz unten eine Combobox. Ich schreibe folgende Methode:

public void formatierung() {
  L1 = new JLabel("....");
  L2 = new JLabel("...."); 
  button1 = new JButton("....");
  button2 = new JButton("....");
  button3 = new Jbutton("....");
  box = new JcomboBox("....");
  hauptPanel = new Jpanel(); // 3 Panels
  panel1=new JPanel();
  panel2=new Jpanel();
  Container konteiner = getContentPane(); // 
  konteiner.add(hauptPanel); // alles kommt in dem Panel 
  hauptPanel.setLayout(new GridLayout(3,1)); // drei Reien, eine Zeile
  hauptPane.add(panel1);
  hauptPane.add(panel2);
  hauptPane.add(box);
  ......................................// hier panel1 mit zwei JLabels und panel2 mit 3 buttons
}

soweit so gut - jetzt kommt nur noch html:
<applet code="SehrgutaussehendeJApplet.class" width=30 height=900>
 </applet>

Mein Problem ist: Welche Formatierungsmöglichkeiten habe ich? Jetzt ist die Box so groß
wie panel1 und 2. Wenn ich will, dass die  Combobox nur 10px hoch ist und nicht 300px,.
dagegen die Buttons 600px hoch - was soll ich machen?

SetSize funktioniert nicht - das Applet macht was es will. Er verteilt immer die gleiche Höhe für
die drei Komponenten im  hauptPanel.


----------



## L-ectron-X (1. Feb 2006)

Du solltest mit LayoutManagern arbeiten.
http://www.galileocomputing.de/openbook/javainsel5/javainsel15_009.htm#Xxx999378


----------



## Guest (1. Feb 2006)

Danke erstmal!
OK. Ich formuliere das genauer:


```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Twolabels extends JApplet {
	JPanel mainpanel;
	JLabel one, two;
  public void init() {
  	try {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                labels();
            }
        });
    } catch (Exception e) {
        System.err.println("createGUI didn't successfully complete");
    }
  }
  public void labels() {				
	one = new JLabel("  50px",SwingConstants.LEFT);
	two = new JLabel("  150px",SwingConstants.LEFT);	
   	mainpanel = new JPanel();   	 	
    Container conteinr = getContentPane();
    conteinr.add(mainpanel);
    mainpanel.setLayout(new GridLayout(1,2,5,5));
    mainpanel.setBorder(BorderFactory.createRaisedBevelBorder());
    mainpanel.add(one);    
    mainpanel.add(two);
    one.setBorder(BorderFactory.createLoweredBevelBorder());
    two.setBorder(BorderFactory.createLoweredBevelBorder());      
 }
}
```


```
<html>
<head><title>JApplet</title></head>
<body>
<applet code="Twolabels.class" width=200 height=60>
</applet>
</br>
</body>
</html>
```

Was soll ich tun damit „Fenster2“ drei mal breiter als „Fenster“ 1 ist?


----------



## André Uhres (2. Feb 2006)

Eine Möglichkeit wäre mit FlowLayout. Die Grösse der Panels legts du dann mit setPreferredSize fest.
Danach hängt die Anordnung von der Grösse des Applets ab: ist es gross(breit) genug, 
dann erscheinen die beiden Panels nebeneinander, andernfalls untereinander.


----------

