Mehrere Probleme mit Java's GUI

Gubbel

Mitglied
Ich habe mehrere kleine Probleme mit Javas GUI (Hauptsächlich Swing).
Ich bin C# gewöhnt und gehe nun die ersten Schritte mit Java GUI und ich muss ehrlich sagen, ich komm nicht drauf klar :(

Hier erstmal mein Programmcode

Java:
package gui;

import javax.swing.*;

import java.awt.*;

public class CodecGUI extends JFrame{
	
	Container c;
	
	public CodecGUI(){
		c = getContentPane();
		
		JLabel losungswort1, losungswort2, codewort1, codewort2;
		JTextArea wortVerschluesselt, wortEntschluesselt;
		JTextField wortLosung1, wortLosung2;
		JButton encrypt, decrypt;
		
		JPanel main = new JPanel(new BorderLayout()), top = new JPanel(new GridLayout(4,2,10,0)), bottom = new JPanel();
		
		codewort1 = new JLabel("Klartext: ");
		wortEntschluesselt = new JTextArea(3,100);
		
		codewort2 = new JLabel("Verschlüsselt: ");
		wortVerschluesselt = new JTextArea(3,100);
		
		losungswort1 = new JLabel("Losungswort 1");
		wortLosung1 = new JTextField(15);
		losungswort2 = new JLabel("Losungswort 2");
		wortLosung2 = new JTextField(15);
		
		encrypt = new JButton("Encrypt");
		decrypt = new JButton("Decrypt");
		
		
		top.add(losungswort1);
		top.add(losungswort2);
		top.add(wortLosung1);
		top.add(wortLosung2);
		top.add(codewort1);
		top.add(codewort2);
		top.add(wortVerschluesselt);
		top.add(wortEntschluesselt);
		
		bottom.add(encrypt);
		bottom.add(decrypt);
		
		main.add(top, BorderLayout.NORTH);
		main.add(bottom, BorderLayout.SOUTH);
		main.add(bottom, BorderLayout.SOUTH);
		c.add(main);

	}

public static void main(String[] args) {
		
		CodecGUI fenster = new CodecGUI();
		
		fenster.setSize(500,300);
		fenster.setTitle("Geheim ! || Eyes Only");
		fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fenster.setVisible(true);
		

	}

}

Das Ergebnis sieht nicht so toll aus ... Ich möchte das TextField einzeilig halten und den Text mit dem ich dann abreiten muss in mehreren Spalten als TextArea halten, da das Losungswort, was zur verschlüsselung dient nur aus einem Wort besteht, wohingegen der "Klartext" mehrere Zeilen umfassen kann.

Außerdem macht meine TextArea keinen automatischen Zeilnumbruch. Wie Formatiere ich also die TextArea damit dies geschieht ? :bahnhof:

Danke für die Hilfe schonmal :)
 

Gubbel

Mitglied
Ich sehe grade das ich es ins famlsche forum gepostet habe ... tschuldigung :(

werds im richtigen nochmal einstellen, in der hoffnung das mir dort geholfen wird
 

Marco13

Top Contributor
Ansonsten... allgemein sollte man den Gültigkeitsbereich von Variablen möglichst klein halten, und nicht alles oben in die Methode klatschen. Man sollte auch nur die als Fields einfügen, die man wirklich braucht (vermutlich wirst du die TextFields- und Areas als Fields brauchen). JLabels braucht man nur dann als Lokale Variable oder Field, wenn man den Text noch ändern will.

Ich persönlich finde es übersichtlicher, den Code so zu gruppieren, dass er "Topologieerhaltend" auf das GUI mappt - also nicht oben einen Haufen Objekte erstellen, und unten mit 20 "add"-Aufrufen zusammenklatschen.

Am konkreten Beispiel kann man mit einem weiteren Panel das Layout noch "schöner" machen, in dem Sinne, dass die TextAreas den überschüssigen Platz beim vergrößern des Fensters bekommen.

Als Alternativvorschlag also
Java:
import javax.swing.*;
 
import java.awt.*;
 
public class CodecGUI extends JFrame
{
    public CodecGUI()
    {
        JPanel main = new JPanel(new BorderLayout());
        
        JPanel top = new JPanel(new GridLayout(2,2,10,0)); 
        
        top.add(new JLabel("Losungswort 1"));
        top.add(new JLabel("Losungswort 2"));

        JTextField wortLosung1 = new JTextField(15);
        top.add(wortLosung1);

        JTextField wortLosung2 = new JTextField(15);
        top.add(wortLosung2);

        main.add(top, BorderLayout.NORTH);
        
        JPanel center = new JPanel(new BorderLayout());
        
        JPanel centerTop = new JPanel(new GridLayout(1,2,5,5));
        centerTop.add(new JLabel("Klartext: "));
        centerTop.add(new JLabel("Verschlüsselt: "));
        center.add(centerTop, BorderLayout.NORTH);

        JPanel centerCenter = new JPanel(new GridLayout(1,2,5,5));
        JTextArea wortVerschluesselt = new JTextArea(3,100);
        centerCenter.add(wortVerschluesselt);
        JTextArea wortEntschluesselt = new JTextArea(3,100);
        centerCenter.add(wortEntschluesselt);
        center.add(centerCenter, BorderLayout.CENTER);

        main.add(center, BorderLayout.CENTER);
        
        JPanel bottom = new JPanel();

        JButton encrypt = new JButton("Encrypt");
        JButton decrypt = new JButton("Decrypt");
        bottom.add(encrypt);
        bottom.add(decrypt);
        
        main.add(bottom, BorderLayout.SOUTH);

        getContentPane().add(main);
 
    }
 
    public static void main(String[] args) 
    {
        // Swing components should be created
        // on the Event Dispatch Thread
        SwingUtilities.invokeLater(new Runnable()
        {
            @Override
            public void run()
            {
                createAndShowGUI();
            }
        });
    }
 
    private static void createAndShowGUI()
    {
        CodecGUI fenster = new CodecGUI();
        fenster.setSize(500,300);
        fenster.setTitle("Geheim ! || Eyes Only");
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenster.setVisible(true);
    }
}
 

Gubbel

Mitglied
Hat bestens geklappt. Unser Prof hat da so seine Eigenart wie er es gerne hätte. Ich werde mir den Quellcode mal genau anschauen und analysieren :)

danke !


[EDIT]Ich bekomme nun vom Eclipse Compiler folgende Warnung

"The serializable class CodecGUI does not declare a static final serialVersionUID field of type long"

Was soll ich mir darunter vorstellen ? habe noch ein wenig den Programmcode hin und hergeschoben und die Main Methode wieder in eine andere Klasse verfrachtet.[/EDIT]
 

Marco13

Top Contributor
Die sollte vorher auch schon gekommen sein. Eine Websuche nach der Meldung sollte genug Ergebnisse bringen. Wenn nicht, nochmal bescheid sagen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Swing JInternalFrame: Mehrere Probleme AWT, Swing, JavaFX & SWT 3
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
M mehrere jTextField untereinander AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
M JavaFX JavaFX in mehrere Controller AWT, Swing, JavaFX & SWT 21
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
T Swing Tetraeder - mehrere Punkte verbinden? - Ansätze gesucht AWT, Swing, JavaFX & SWT 2
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 29
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 0
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
J JavaFX - mehrere Views, Model durchreichen AWT, Swing, JavaFX & SWT 10
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
L JavaFX Mehrere JavaFX Szenen mit einem Menü AWT, Swing, JavaFX & SWT 1
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
F JavaFX Mehrere Stages "managen" AWT, Swing, JavaFX & SWT 2
r4w Changelistener auf mehrere Textfelder AWT, Swing, JavaFX & SWT 5
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
S Swing Mehrere Modal-Dialoge übereinander AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
C JavaFX mehrere Kreise nach Eingabeprozess ausgeben AWT, Swing, JavaFX & SWT 2
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
C Java FX Warnmeldung: Mehrere Fonts gehören derselben Familie und Stil AWT, Swing, JavaFX & SWT 2
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
K JavaFX Mehrere Cell Editors in einem TreeView Item AWT, Swing, JavaFX & SWT 2
KaffeeFan mehrere JTextField durchlaufen AWT, Swing, JavaFX & SWT 4
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
T Dynamisch mehrere Checkboxen anlegen AWT, Swing, JavaFX & SWT 2
G JavaFX Menü und mehrere Scenes AWT, Swing, JavaFX & SWT 16
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
D Mehrere RadiButtons auswählar AWT, Swing, JavaFX & SWT 3
P Swing JTable mehrere Zeilen markieren AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
G mehrere Action-Abfolgen erfassen AWT, Swing, JavaFX & SWT 6
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
J Mehrere Hyperlinks "stilvoll" darstellen. AWT, Swing, JavaFX & SWT 1
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
S JavaFX Mehrere TreeTableView's synchron scrollen AWT, Swing, JavaFX & SWT 0
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
J Rahmen um mehrere GUI Einzelteile AWT, Swing, JavaFX & SWT 2
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
M Mehrere Fenster innerhalb einer Application AWT, Swing, JavaFX & SWT 3
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
T [LWJGL] mehrere Displays? AWT, Swing, JavaFX & SWT 19
SexyPenny90 Mehrere Fenster AWT, Swing, JavaFX & SWT 2
M Handling 1 Fenster mehrere Panels AWT, Swing, JavaFX & SWT 2
Y Mehrere JSlider verlinken AWT, Swing, JavaFX & SWT 6
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
O Swing JLabel mehrere Zeilen AWT, Swing, JavaFX & SWT 2
P mehrere Rectangles per JButton AWT, Swing, JavaFX & SWT 9
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
G Mehrere Layoutprobleme AWT, Swing, JavaFX & SWT 2
Kenan89 JTable mehrere ListSelections AWT, Swing, JavaFX & SWT 2
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
A mehrere Zeilen in GUi ausgeben AWT, Swing, JavaFX & SWT 2
N Mehrere Tasks nacheinander ausführen AWT, Swing, JavaFX & SWT 7
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
M 2D-Grafik Mehrere Linien (nacheinander) übereinander Zeichnen AWT, Swing, JavaFX & SWT 6
M Mehrere JPanel nacheinander?! AWT, Swing, JavaFX & SWT 11
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
K SWT Mehrere Einträge ins Clipboard legen AWT, Swing, JavaFX & SWT 2
C Swing Ein JFrame mehrere Ansichten AWT, Swing, JavaFX & SWT 8
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4
GUI-Programmer JFilechooser, mehrere Datein selektieren und Reihenfolge (2) AWT, Swing, JavaFX & SWT 8
S Mehrere JLists - Wie kennzeichnen? AWT, Swing, JavaFX & SWT 2
S Swing MVC Ein JFrame, mehrere JPanels AWT, Swing, JavaFX & SWT 6
J Mehrere JRadioButtons, aber nur 1 darf ausgewählt sein AWT, Swing, JavaFX & SWT 4
L Swing Mehrere Button die selbe Größe AWT, Swing, JavaFX & SWT 4
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
I Wie mehrere JComboBoxen in Abhängigkeit einer anderen Box ändern? AWT, Swing, JavaFX & SWT 8
G mehrere JPanel in ein (vertikales) JScrollPane AWT, Swing, JavaFX & SWT 8
F Swing Mehrere Textfelder in Scrollpane einfügen und dann zum Scrollen bringen? AWT, Swing, JavaFX & SWT 4
GianaSisters Swing jTable - Feldtext soll mehrere Zeilen haben AWT, Swing, JavaFX & SWT 3
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4
D Mehrere JTabel in einem Frame positionieren AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben