Aufbau einer Seite

terzbke

Mitglied
Guten Morgen allerseits,

bin dabei, von VB auf Java umzusteigen. Habe Schwierigkeiten schon bei grundlegenden Dingen.
Meine Absicht ist, eine Seite zu erstellen, die von der Struktur etwa so aussehen soll:

Überschrift mehrzeilig

Aufgabe 1 Aufgabentext Eingabefeld

Aufgabe 2 Aufgabentext Eingabefeld

....

Ich muss gestehen, schon die mehrzeilige Überschrift bereitet mir Schwierigkeiten, obwohl ich alle möglichen Layouts probiert habe.
Meine Bitte ist: Könnte mir jemand sagen, welche Funktionen ich nacheinander einsetzen sollte, um diese Seite zu realisieren?

Gruß an alle.

Joachim
 
Zu mehrzeiligen Texten: du kannst ein normales JLabel nehmen und HTML-Code nutzen. Ein <html> um den Inhalt und wie üblich mit <br> neue Zeilen erzeugen:
Code:
new JLabel("<html>erste zeile<br>zweite zeile</html>")
 
Lieber darekkay,

vielen Dank für Deine Antwort.
Habe ich versucht. Das Problem ist, die zweite Zeile soll, wie die erste auf dem Bildschirm zentriert sein. Habe ich mit html nicht geschafft, die zweite Zeile wird nicht eingerückt.
Gruß
Joachim
 
Morgen,

sonst kannste auch einfach mit arrays arbeiten. Erzeugst die Überschrift und dann einen String[] mit den Aufgabentexten, dann ein JLabel[] in einer for-Schleife und übergibst den jeweiligen String an den Konstruktuor. Dann noch ein JTextField[] als Eingabe und packst das ganze in ein GridLayout.

mfg
BH16

[EDIT]Um den Label zu zentrieren würde ich erstmal BorderLayout für das JFrame nehmen und dann in top die Überschrift schreiben. Diese kannst du dann mit JComponent.setAlignmentX(float alignmentX) mittig setzen[/EDIT]
 
Zuletzt bearbeitet:
Lieber blackhole16,

vielen Dank für Deine Antwort.

Auch mit dem gridlayout, dem borderlayout und dem flowlayout habe ich die Überschrift versucht, hat nicht geklappt. Die Überschrift sollte mehrzeilig sein, alle Zeilen zentriert und nicht ganz oben am Rand erscheinen. Für eine Zeile bekomme ich das mit flowlayout hin, aber nicht für mehr Zeilen.
Mein Problem ist, auch bei den anderen Komponenten, sie auf dem Bildschirm nach meinen Vorstellungen zu plazieren, da weiß ich bis jetzt nicht wie.

Gruß

Joachim
 
Java:
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

JPanel panel = new JPanel(new BorderLayout());
JLabel label = new JLabel("<html>Das ist die 1. Zeile, <br>das ist die 2. Zeile</html>");
label.setBorder(BorderFactory.createEmptyBorder(25,0,0,0));
label.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(label, BorderLayout.NORTH);
frame.getContentPane().add(panel);

frame.pack();
frame.setVisible(true);

für die anderen Sachen schau mal hier How to Use Various Components (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components) ob es dir weiterhilft, wenn nicht kannst ja nochmal nachfragen
 
Zuletzt bearbeitet:
Lieber TR,

danke für den Code.
Probiere ich aus, und melde mich dann wieder.
Nebenbei gefragt, wie hätte ich alleine auf diese Überlegungen kommen können? Ich habe Literatur, schaue im Netz nach usw., trotzdem bekomme ich es ohne Hilfe nicht hin.

Gruß

Joachim
 
Ich versteh dich gut. Habe früher auch nur VB benutzt und war von OOP dann doch ziemlich erschlagen.
Auch die selbst geschriebenen GUIs schrecken ab - mit VB war das etwas "spielerischer". Aber ganz ehrlich: Java zu lernen stellt sich früher oder später als eine sehr dankbare Aufgabe heraus - versprochen! 😉
 
Lieber TR,

danke für den Code.
Probiere ich aus, und melde mich dann wieder.
Nebenbei gefragt, wie hätte ich alleine auf diese Überlegungen kommen können? Ich habe Literatur, schaue im Netz nach usw., trotzdem bekomme ich es ohne Hilfe nicht hin.

Gruß

Joachim

wie gesagt mein link könnte z.B. helfen.
Du kannst dir ja da mal labels How to Use Labels (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components) anschauen, da steht z.B. die Methode
Code:
setHorizontalAlignment(int)
drin. und genauso macht man es mit den anderen, wie z.B. mit deinen Textfeldern die du noch haben willst How to Use Text Fields (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
 
Mit der Geduld ist das so eine Sache.
Ja, lieber TR, der Link sieht hilfreich aus. Da kümmere ich mich jetzt drum und melde mich dann wieder.
Dank an alle.

Joachim
 
So, ich habe den Code von TR ausprobiert. Die beiden Zeilen werden zentriert ausgegeben, leider wird die 2. Zeile nicht eingerückt wie gewünscht.
Was ich gerne hätte, wäre:
Wie löse ich Matheaufgaben? zentriert
Trigonometrie zentriert

Geht das vielleicht mit zweimal FlowLayout und unterschiedlichen Label oder doch ganz anders?
Gruß

Joachim
 
Könnte man mit GridBagLayout lösen:

Java:
public class GUI extends JFrame {

    public static void main( String[] args ) {
        new GUI().setVisible( true );
    }

    public GUI() {
        setDefaultCloseOperation( EXIT_ON_CLOSE );
        setLayout( new GridBagLayout() );
        add( getCenteredLabel( "Wie löse ich Matheaufgaben?" ), getConstraints( 0, 0 ) );
        add( getCenteredLabel( "Trigonometrie" ), getConstraints( 0, 1 ) );
        pack();
    }

    private JLabel getCenteredLabel( String text ) {
        JLabel label = new JLabel( text );
        label.setHorizontalAlignment( SwingConstants.CENTER );
        return label;
    }

    private GridBagConstraints getConstraints( int x, int y ) {
        return new GridBagConstraints( x, y, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets( 5, 5, 5, 5 ), 0, 0 );
    }
}
 
Lieber Peter W. Marth,

vielen Dank für den Code. Werde mich damit beschäftigen, in der Hoffnung, dann auch gridbaglayout besser zu verstehen. Wird überall als das schwierigste Layout bezeichnet. Habe mich bis jetzt davor gedrückt.

Gruß

Joachim

Ja, so funktioniert's. Jetzt bleibt mir die Aufgabe, dieses Verhalten auf den ganzen Bildschirm als Überschrift zu bringen und die einzelnen Anweisungen dafür zu verstehen.
 
Zuletzt bearbeitet:
Hallo terzbke,

wenn Du von VB möglichst schnell und einfach auf Java umsteigen bzw. produktiv in Java entwickeln möchtest, wären die folgenden Links für Dich interessant.

The Jabaco Programming Language - Explore Your Opportunities!

Die Jabaco Entwicklungsumgebung (IDE) ist ein BASIC Compiler der die Syntax von VB6 und VBA unterstützt.

Basisfunktionen:

  • Objektorientierte Programmiersprache mit Syntax-Anlehnung an Visual Basic.
  • Der Jabaco-Compiler erzeugt performanten, plattformunabhängigen Java-Bytecode.
  • Zugriff auf zahlreiche Java-Techniken sowie auf eine Vielzahl weiterer Bibliotheken.
Alternativ kannst Du eine IDE einsetzen, die Dir das Layout-Design abnimmt oder zumindest erleichtert. Für den Einstieg würde ich eher zur Netbeans als zu Eclipse raten. Als Java Beginner habe ich gute Erfahrung mit XDEV3 gesammelt.

XDEV3 ist so konzipiert, das Du Oberflächen wie mit einem Grafikprogramm designen kannst. Alle GUI-Komponenten lassen sich per Drag&Drop auf die Arbeitsfläche einfügen und dort pixelgenau positionieren.

XDEV Software Corp. - Startseite

Beitrag mit XDEV3 - Vorstellung:

http://www.java-forum.org/awt-swing-swt/139906-designt-gui.html#post927392

Grüße
OSBI_Fan

OSBI = Open Source Business Intelligence
 
Zuletzt bearbeitet:
Hallo terzbke,

wenn Du von VB möglichst schnell und einfach auf Java umsteigen bzw. produktiv in Java entwickeln möchtest, wären die folgenden Links für Dich interessant.

The Jabaco Programming Language - Explore Your Opportunities!

Die Jabaco Entwicklungsumgebung (IDE) ist ein BASIC Compiler der die Syntax von VB6 und VBA unterstützt.

Basisfunktionen:

  • Objektorientierte Programmiersprache mit Syntax-Anlehnung an Visual Basic.
  • Der Jabaco-Compiler erzeugt performanten, plattformunabhängigen Java-Bytecode.
  • Zugriff auf zahlreiche Java-Techniken sowie auf eine Vielzahl weiterer Bibliotheken.
...

Hammer ... was es alles gibt. 😀
 
Aber mal ganz ehrlich: Um Java zu lernen ist das doch bestimmt nicht sinnvoll, oder?
Ich kann mir vorstellen, dass man gerade den Bruch mit der Syntax bitteschön sauber und hart machen sollte. Da lernt man ja nicht Java, sondern man lernt Java-Funktionen mit VB zu benutzen. Oder hab ich da was falsch verstanden?
 
Aber mal ganz ehrlich: Um Java zu lernen ist das doch bestimmt nicht sinnvoll, oder?
Ich kann mir vorstellen, dass man gerade den Bruch mit der Syntax bitteschön sauber und hart machen sollte. Da lernt man ja nicht Java, sondern man lernt Java-Funktionen mit VB zu benutzen. Oder hab ich da was falsch verstanden?

100% Zustimmung!
 

Zurück
Oben