Java Applets & Größe = ?



  • Hi,

    ich bin grad ziemlich frustriert und werde vermeiden irgendwelche "Kraftausdrücke" zu benutzen...

    Ist es eigentlich mit Java nicht möglich ein vernünftiges Applet-Design herzustellen? Genauer bedeutet das, dass sich bei mir alles mögliche zur Laufzeit verschiebt, z.B. wenn ich 2 Comboboxen austausche (also 2 Modelle).

    Okok... meine Frage wäre einfach:
    Ist es in diesem -Java-Applet nicht möglich GENAU zu sagen wo welches Panel sein soll?????????? Wenn ich es z.B. mit setSize versuche kommt nur sc dabei raus!
    ... In VC++ klappts doch auch!!!!

    Würde mich WIRKLICH über ne Hilfe freuen!
    Gruß, Tobias



  • Benutze keinen LayoutManager. Dann kannst du die Position sowie die Größe der Komponenten präzise angeben. Dadurch entgeht dir natürlich der Vorteil, dass mit Nutzung eines LayoutManagers bei einer Vergrößerung des Fensters oder dergleichen das Layout sich mitverändert.

    Keywords: setLayout, setPreferredSize, setSize, setLocation



  • Hi, danke für Deine Hilfe, aber:
    Schau Dir doch mal bitte dieses Stück Code hier an (kann kompiliert werden!)
    Bei mir seh ich nur den letzten Button über den ganzen Frame verteilt!
    ...Alles andere ist nicht da!!!
    Habe ich das nicht so gemacht, wie Du gesagt hast?
    Gruß, Tobias

    import java.awt.*;
    import javax.swing.*;
    
    public class test extends Frame {
    
      public static void main(String[] args) {
         test t = new test();
         t.setLocation (100, 100);
         t.setSize(600, 400);
         t.setVisible(true);
      }
    
      // Component an Position setzen
      public void setTo(Component c, int x0, int y0, int x, int y) {
        this.add(c);
        c.setLocation(x0,y0);
        c.setSize(x,y);
      }
    
      public test() {
        // init
        jtQ = new JTextArea(7,30);
        jtZ = new JTextArea(7,30);
        jtQ.setText("@tetdt");
        jtZ.setText("LANG.getPZIEL()");
        jtQ.setEditable(false);
        jtZ.setEditable(false);
        bPrint = new JButton("LANG.getPRINT()");
        bClose = new JButton("LANG.getCLOSE()");
        tfInfo = new JTextField();
        tfInfo.setEditable(false);
        tfInfo.setText("LANG.getAFINFO()");
        // Fenster Zeichnen
        int xD = this.getWidth();
        setTo(jtQ,0,000,xD,100);
        setTo(jtZ,0,100,xD,100);
        setTo(tfInfo,0,400,xD,100);
        setTo(bPrint,0,500,xD,20);
        setTo(bClose,0,520,xD,80);
      }
    
      JTextArea  jtQ, jtZ;
      JTextField tfInfo;
      JButton    bPrint, bClose;
    
    }
    


  • Nein, du hast kein Null-Layout sondern benutzt den Default. Nämlich den BorderLayoutManager. Dieser zieht die Controls auf bestimmte Größe.



  • Hi, also ich hab das jetzt mit der Seite [url]http://www.selfjava.de/java0508.htm [/url]unten so geändert:
    - setBounds benutzen
    - setLayout(null)

    Will aber dennoch nicht klappen... genau genommen sehe ich nichts, nur ein leeres Frame!

    Siehst du da noch einen Fehler???

    Gruß, Tobias

    import java.awt.*;
    import javax.swing.*;
    
    public class test extends Frame {
    
      public static void main(String[] args) {
         test t = new test();
         t.setLocation (100, 100);
         t.setSize(400, 600);
         t.setVisible(true);
      }
    
      // Component an Position setzen
      public void setTo(Component c, int x0, int y0, int x, int y) {
        c.setBounds(x0,y0,x,y);
        this.add(c);
      }
    
      public test() {
        // init
        setLayout(null);
        jtQ = new JTextArea(7,30);
        jtZ = new JTextArea(7,30);
        jtQ.setText("@tetdt");
        jtZ.setText("LANG.getPZIEL()");
        jtQ.setEditable(false);
        jtZ.setEditable(false);
        bPrint = new JButton("LANG.getPRINT()");
        bClose = new JButton("LANG.getCLOSE()");
        tfInfo = new JTextField();
        tfInfo.setEditable(false);
        tfInfo.setText("LANG.getAFINFO()");
        // Fenster Zeichnen
        int xD = this.getWidth();
        setTo(jtQ,0,000,xD,100);
        setTo(jtZ,0,100,xD,100);
        setTo(tfInfo,0,200,xD,300);
        setTo(bPrint,0,500,xD,50);
        setTo(bClose,0,550,xD,50);
      }
    
      JTextArea  jtQ, jtZ;
      JTextField tfInfo;
      JButton    bPrint, bClose;
    
    }
    


  • hi,ok! danke!!!
    ich hab den Fehler gefunden!
    this.getWidth() war wohl noch 0!!!


Anmelden zum Antworten