Borderlayout

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Hallo ich wollte mir mal ein einfaches Applet erstellen wo ich die unterschiede zwischen den Layouts grafisch mir anschauen kann , aber es geht schon beim ersten code nicht.

Kann mir da bitte jemand helfen ?
Danke .

add.() fundktioniert nicht

i[HIGHLIGHT="Java"]mport javax.swing.*;
import java.awt.*;
public class BorderLayout extends JApplet {

/**
* Initialization method that will be called after the applet is loaded
* into the browser.
*/
public void init() {
Container cp = getContentPane();
JPanel panel = new JPanel(new BorderLayout(6, 6));
cp.add(BorderLayout.TOP_ALIGNMENT, new JButton("North"));
cp.add(BorderLayout.BOTTOM_ALIGNMENT, new JButton("North"));
cp.add(BorderLayout.LEFT_ALIGNMENT, new JButton("North"));
cp.add(BorderLayout.RIGHT_ALIGNMENT, new JButton("North"));
cp.add(BorderLayout.CENTER_ALIGNMENT, new JButton("North"));
// TODO start asynchronous download of heavy resources
}

// TODO overwrite start(), stop() and destroy() methods

}[/HIGHLIGHT]



PS: Ich habe keine Symbolleiste, wo mit ich den Txt editieren ,also BB Code verwenden kann..mhhh





[HIGHLIGHT="Java"]import javax.swing.*;
import java.awt.*;
public class JButton extends JFrame {


JButton button;
public JButton() {
Container cp = getContentPane();
button = new JButton("Button 1");
cp.add(button);
}
public static void main (String [] args) {
JButton mybutton = new JButton();
mybutton.pack();
mybutton.show();
}
}[/HIGHLIGHT]


Ich wäre euch auch sehr dankbar , wenn jemand hier drauf schaut.
Die Zeile solle ein Fehler sein : button = new JButton("Button 1");

Ich habe den Code von einen UNI Script übernommen, und es geht nicht...grrr
 
Zuletzt bearbeitet von einem Moderator:

André Uhres

Top Contributor
Hallo ich wollte mir mal ein einfaches Applet erstellen wo ich die unterschiede zwischen den Layouts grafisch mir anschauen kann , aber es geht schon beim ersten code nicht.
Versuch's mal so:
Code:
/*
 * Eigene Klassennamen sollten nicht identisch sein mit standard Klassennamen!
 */
import java.awt.*;
import javax.swing.*;

public class BorderDemo extends JApplet {

    private JButton jButton1;
    private JButton jButton2;
    private JButton jButton3;
    private JButton jButton4;
    private JButton jButton5;

    /** Initializes the applet BorderDemo */
    @Override
    public void init() {
        try {
            EventQueue.invokeAndWait(new Runnable() {

                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private void initComponents() {

        jButton1 = new JButton();
        jButton2 = new JButton();
        jButton3 = new JButton();
        jButton4 = new JButton();
        jButton5 = new JButton();

        jButton1.setText("jButton1");
        getContentPane().add(jButton1, BorderLayout.PAGE_START);

        jButton2.setText("jButton2");
        getContentPane().add(jButton2, BorderLayout.LINE_START);

        jButton3.setText("jButton3");
        getContentPane().add(jButton3, BorderLayout.LINE_END);

        jButton4.setText("jButton4");
        getContentPane().add(jButton4, BorderLayout.PAGE_END);

        jButton5.setText("jButton5");
        getContentPane().add(jButton5, BorderLayout.CENTER);
    }
}
 

Onkel Hatti

Bekanntes Mitglied
Moinsen.

Da geht ja so ziemlich alles durcheinander...

1. Deine Klasse heisst BorderLayout. Die gibts aber schon, im java.awt.BorderLayout.
2. Deine andere Klasse heisst JButton. Die gibts auch schon in javax.swing.JButton.

Welche soll dein Programm nehmen. Die eigene oder die aus dem AWT, bzw. Swing?

Darum: Eigene Klassen nicht gleich schon vorhandenen Klassen benennen, schon gar nicht, wenn man diese vorhandenen Klassen auch noch importiert!

3. Egal wie, schau dir mal die API-Dokumentation zu BorderLayout an. Da gibt es keine Konstante BorderLayout.TOP_ALIGNMENT, ebenso wenig wie die anderen Alignments.

4. cp ist ein Container. Schau dir mal die API-Dokumentation von Container. "add" erwartet zu nächst die Component, dann das Layout-Constraint, bei dir ist das grad umgekehrt.

5. Das Uni-Skript ist nicht viel wert.

Alle weiteren Kommentare erspare ich mir...

Hatti
 

Spin

Top Contributor
Ahhhh , das ist ja schonmal ganz klar.

Ich kann doch nicht meine Klasse so nennen, wie sie schon in der API vorhanden ist ;) Oje , daran habe ich garnicht gedacht. Aber nun weiß ich dass sowas nie wieder vorkommt ;)

Danke @Hatti

Weiterhin...im BorderLayout , gibt es NORTH usw......ich dachte man könne es auch mit Alignment machen. Aber nagut , denn halt nicht ;)
Das solte auch nicht schwer zuändern sein.

Ich verstehe nun so einiges mehr , warum dass nicht funktioniert ;) Und der Fehler ist ja echt schnell zusehen, zumindest für jemanden der schon länger mit JFrame zu tun hat.


@Uhres


Mir scheint dass du es mit der Java Umgebung gemacht hast, also einfach nur buttons reingezogen ;) Das wollte ich nicht, sondern selbst programmieren ;)

Aber trotzdem danke
 

André Uhres

Top Contributor
@Uhres
Mir scheint dass du es mit der Java Umgebung gemacht hast, also einfach nur buttons reingezogen ;) Das wollte ich nicht, sondern selbst programmieren
Wie die JButtons reingezogen, bzw. instanziert werden tut ja nix zur Sache.
Auch selbst programmierte Applets sollten in den Grundzügen so aussehen, wie es mein Beispiel zeigt:
1.Namen vergeben:
Code:
/*
 * Eigene Klassennamen sollten nicht identisch sein mit standard Klassennamen!
 */
2. Ein Applet muss mit invokeAndWait gestartet werden:
Code:
    /** Initializes the applet BorderDemo */
    @Override
    public void init() {
        try {
            EventQueue.invokeAndWait(new Runnable() {//<-------- !!!

                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
3. Das default Layout von JApplet ist BorderLayout:
Code:
        getContentPane().add(jButton1, BorderLayout.PAGE_START);
...
        getContentPane().add(jButton2, BorderLayout.LINE_START);
...
        getContentPane().add(jButton3, BorderLayout.LINE_END);
...
        getContentPane().add(jButton4, BorderLayout.PAGE_END);
...
        getContentPane().add(jButton5, BorderLayout.CENTER);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
M BorderLayout, 2Panels, EAST wird nicht angezeigt ?? Java Basics - Anfänger-Themen 2
I In der Mitte eines Frames mit BorderLayout etwas malen Java Basics - Anfänger-Themen 7
F Content Pane / BorderLayout Java Basics - Anfänger-Themen 2
B Drawline mit Borderlayout Java Basics - Anfänger-Themen 3
G Konstruktor, BorderLayout nimmt Component nicht auf Java Basics - Anfänger-Themen 2
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
M BorderLayout zickt! Ein Panel versteckt das andere! Java Basics - Anfänger-Themen 6
M JPanel, JButtons, Borderlayout Java Basics - Anfänger-Themen 8
P BorderLayout Java Basics - Anfänger-Themen 11
O AWT, Dubiose Ausgabe BorderLayout Java Basics - Anfänger-Themen 2
Antoras Layoutprobleme mit Box- und BorderLayout Java Basics - Anfänger-Themen 13
A Problem mit BorderLayout und null-Layout Java Basics - Anfänger-Themen 5
G Frage zum BorderLayout Java Basics - Anfänger-Themen 2
kulturfenster BorderLayout Java Basics - Anfänger-Themen 3
G aktueller Panel, der in BorderLayout.SOUTH angeordnet ist Java Basics - Anfänger-Themen 11
S Button und BorderLayout Java Basics - Anfänger-Themen 2
P BorderLayout und Center fkt. nicht Java Basics - Anfänger-Themen 4
R BorderLayout macht meine Zeichnung kaputt Java Basics - Anfänger-Themen 14
F Kurze Frage: JLabel in BorderLayout einfügen Java Basics - Anfänger-Themen 2
S BorderLayout Ausrichtung Java Basics - Anfänger-Themen 7

Ähnliche Java Themen


Oben