Klassen JTextField wird nur zu 50% angezeigt.

DoppelFabi

Aktives Mitglied
Hey,
Ich mache gerade ein kleines Programm womit man im TextField nach einer Person suchen kann, und dann werden einige Information zu ihm angezeigt. Das klappt eigentlich wunderbar, nur nun möchte ich das ganze geordnet machen. Das hat bis zum jetzigen Zeitpunkt gut geklappt nun habe ich das Problem das ich ein JTextField habe und der wird nur zu 50% angezeigt.

Main:
Code:
public class Main
{

    public static void main(String[] args)
    {
        Window window = new Window();
        Methoden methoden = new Methoden(window);
        new SearchingSystem(window);
    }
}

Window(JFrame Fenster + adding Methode)
Code:
public class Window extends JFrame
{

    private JFrame Window = new JFrame("Doxingsystem");
    private JPanel Panel;

    public void adding(Component comp)
    {

        Panel.add(comp);

    }

    public Window()
    {

        Panel = new JPanel();

        Window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Window.add(Panel);
        Window.pack();
        Window.setSize(1800, 861);
        Window.setLocationRelativeTo(null);
        Window.setResizable(false);

        Window.setIconImage(getToolkit().getImage("src/main/java/me/system/doxing/Pictures/Icon.jpg"));
        Window.setVisible(true);
    }
}

Methoden Klasse(JLabels, Buttons und Methoden zum ändern der Werte)
Code:
    private JLabel MadeByFabian = new JLabel();
    private JLabel Version = new JLabel();

    private Window window;

    public Methoden(Window window)
    {
        this.window = window;

        Font font = new Font("Calibri", 0, 17);

        MadeByFabian.setText("Made by Fabian");
        MadeByFabian.setBounds(1703,-43,100,100);
        MadeByFabian.setFont(new Font("Calibri", 0, 14));
        MadeByFabian.setLayout(null);
        window.adding(MadeByFabian);

        Version.setText("v. 0.4 beta");
        Version.setBounds(3,-43,75,100);
        Version.setFont(new Font("Calibri", 0, 14));
        Version.setLayout(null);
        window.adding(Version);

    }
}

SearchingSystem(JTextField zum suchen der Personen)
Code:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SearchingSystem extends JTextField
{
    private Window window;
    private JTextField Searching;

    public  SearchingSystem(Window window)
    {
        this.window = window;

        Searching = new JTextField("", 15);
        Searching.setBounds(800,3,200, 20);
        window.adding(Searching);
        Searching.addActionListener(new ActionListener()

        {
            public void actionPerformed(ActionEvent e)
            {
                String input = Searching.getText();
                if(input.equals("test"))
                {
                    System.out.println("Es funktioniert.");
                }
            }
        });
    }
}

Und das JTextField in der Klasse SearchingSystem wird nur zu 50% angezeigt.
Wisst ihr wo das Problem liegt?

LG
Fabian​
 

mihe7

Top Contributor
Nein, die Zeile ist zwar unsinnig, hat aber keine besondere Auswirkung.

Das Problem ist die Struktur Deines Codes. Diese erzeugt in main() zuerst ein neues "Window" (ganz schlechter Name), d. h. letztlich ein JFame inkl. Panel, wobei diese sofort "gelayoutet" und angezeigt werden. Anschließend gehst Du her und füllst das Panel mit Inhalt und das noch aus dem main-Thread heraus. So funktioniert Swing nun einmal nicht.

Pack erstmal alles in eine Klasse, die von keiner anderen Klasse ableitet. Dort erzeugst Du eine Instanz von JFrame, fügst Deine Komponenten hinzu und zeigst anschließend den JFrame an. Außerdem musst Du, wenn Du schon keinen Layout-Manager verwenden willst, das Layout der Container und nicht der Komponenten auf null setzen.

Letztlich fehlen Dir Grundlagen und die lernt man nicht anhand von Code. Das UI ist in der Regel das Uninteressanteste am ganzen Programm. Wo wird denn in Deinem Programm gesucht?
 

DoppelFabi

Aktives Mitglied
Anschließend gehst Du her und füllst das Panel mit Inhalt und das noch aus dem main-Thread heraus
Sowas ist ja das, was ich möchte damit ich die Klasse wo das Fenster erstellt wird nicht unnötig voll geschrieben ist.
Pack erstmal alles in eine Klasse, die von keiner anderen Klasse ableitet
Habe ich schon oft gemacht, nur nach spätestens 5 if else JTextField abfragen die komplett gefüllt sind verliere ich die Orientierung. Deswegen möchte ich das ganze getrennt machen, damit die Struktur da ist.
Wo wird denn in Deinem Programm gesucht?
In der Searching Klasse, dort gebe ich im JTextField einen Namen ein, in der Klasse war es Test und dann sollen alle Werte geändert werden mit Methoden aus der Methoden Klasse die ich noch erstellen muss.

Eine Frage: Layout auf null oder setLayout weg lassen?
 

mihe7

Top Contributor
nach spätestens 5 if else JTextField abfragen die komplett gefüllt sind verliere ich die Orientierung.
In der Klasse haben if-Statements eher selten was zu suchen. Vermutlich packst Du dann zu viel in die Klasse.

Deswegen möchte ich das ganze getrennt machen, damit die Struktur da ist.
Es gibt auch in dem Fall eine Klassenstruktur, diese sieht nur anders aus.

In der Searching Klasse, dort gebe ich im JTextField einen Namen ein, in der Klasse war es Test und dann sollen alle Werte geändert werden mit Methoden aus der Methoden Klasse die ich noch erstellen muss.
Das ist mal ein schönes Beispiel: entweder kümmert sich eine Klasse um das UI (JTextField) oder um z. B. das Suchen. Nicht aber um beides. Und an diesen Stellen wird strukturiert/getrennt. Kurz: was zusammengehört, kommt in eine Klasse. Was nicht zusammengehört wird möglichst lose gekoppelt (man will lose Kopplung und starke Kohäsion).

Eine Frage: Layout auf null oder setLayout weg lassen?
Bei den Komponenten weglassen, für die Container (z. B. Dein Panel) setzen. Besser: LayoutManager verwenden.
 

DoppelFabi

Aktives Mitglied
In der Klasse haben if-Statements eher selten was zu suchen. Vermutlich packst Du dann zu viel in die Klasse.
Soll ich besser ein JTextField in der Window Klasse erstellen aber denn ActionListener in einer Extra Klasse?

Bei den Komponenten weglassen, für die Container (z. B. Dein Panel) setzen. Besser: LayoutManager verwenden.
Es gibt ja Layouts die von Java sind die man verwenden kann, welche sollte ich verwenden?
 

mihe7

Top Contributor
Soll ich besser ein JTextField in der Window Klasse erstellen aber denn ActionListener in einer Extra Klasse?
Das wäre eine Möglichkeit.

Es gibt ja Layouts die von Java sind die man verwenden kann, welche sollte ich verwenden?
Wenn ich es richtig sehe, willst Du ein 3-spaltiges Layout? Dann könntest Du einfach BorderLayout hernehmen: Version im Westen, Autorenangabe im Osten, Inhalt in der Mitte.
 

DoppelFabi

Aktives Mitglied
Wenn ich es richtig sehe, willst Du ein 3-spaltiges Layout? Dann könntest Du einfach BorderLayout hernehmen: Version im Westen, Autorenangabe im Osten, Inhalt in der Mitte.
Ich möchte noch JLabels einfügen die es schaffen ein Fenster von 1800x861 komplett zu füllen also dort kommt noch einiges. Würde es ohne Layout einfach nur so aussehen?:
Code:
Panel.setLayout(null):

Noch eine Frage ich erstelle mit ImageIcon Icon....ein Bild in dem JLabel dann habe ich das Programm mal mit einer Runnable Jar exportiert und als ich es gestartet hatte wurde das Bild nicht mehr angezeigt der Pfad war immer der gleiche. Ändert sich der Pfad wenn man eine Java Datei exportiert?
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Ich möchte noch JLabels einfügel die es schaffe ein Fenster von 1800x861 komplett zu füllen also dort kommt noch einiges.
Es geht an der Stelle erst mal um das "Grundlayout". Wenn es um die Horizontale geht, wird beim BorderLayout der zur Verfügung stehende Platz so verteilt, dass die Komponenten auf der West- und Ost-Seite passenden Platz bekommen und das Zentrum bekommt den Rest.

Ändert sich der Pfad wenn man eine Java Datei exportiert?
Der Pfad ändert sich nicht aber es ist der falsche. Du willst keinen Pfad im Dateisystem relativ zum Arbeitsvezeichnis sondern eine URL, die über Classpath aufgelöst wird. Das funktioniert über getClass().getResource("/name/des/pakets/bild.jpg").
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Fürge nur ein JTextField ein und danach wird nichts mehr angezeigt Java Basics - Anfänger-Themen 3
C JTextField wird nicht richtig angezeigt Java Basics - Anfänger-Themen 4
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
S wird JTextField bearbeitet ? Java Basics - Anfänger-Themen 7
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
S Möglichkeit, mit g.draw etwas vor ein JTextfield zu „zeichnen“? Java Basics - Anfänger-Themen 7
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
B Variablen Int Variabel in JTextField ändern Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
E JButton und JTextField Java Basics - Anfänger-Themen 1
J JTextField Bezeichnung als Variable Java Basics - Anfänger-Themen 3
M Von einem JTextField Doublewerte entgegennehmen Java Basics - Anfänger-Themen 2
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
F JTextField Kursiv und Fett machen Java Basics - Anfänger-Themen 4
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
M JTextField blitzt immer wieder nur auf Java Basics - Anfänger-Themen 12
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
J Erste Schritte Wert aus JTextField zurückgeben Java Basics - Anfänger-Themen 6
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
P Cursor in JTextField setzen Java Basics - Anfänger-Themen 11
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
F Interface JTextField am Anfang unsichtbar o_o Java Basics - Anfänger-Themen 3
D Klassen Wert aus JTextfield in JLabel (andere Klasse) darstellen. Java Basics - Anfänger-Themen 60
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
S Variable in JTextField soll immer um 5 zunehmen Java Basics - Anfänger-Themen 8
B Interface JTextField Eingabe als String verwenden Java Basics - Anfänger-Themen 3
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
Liondary JTextfield Java Basics - Anfänger-Themen 8
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
S JTextField zu ArrayList hinzufügen Java Basics - Anfänger-Themen 3
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
Z JTextField - getText() Methode abbrechen? Java Basics - Anfänger-Themen 8
P jTextField - Auslesen, in Variablen speichern, eingeben... Java Basics - Anfänger-Themen 7
J Methoden JTextArea auslesen und in JTextfield ausgeben Java Basics - Anfänger-Themen 13
M Double-Ausgabe in JTextField fehlerhaft Java Basics - Anfänger-Themen 2
U Inhalt von JTextfield an andere Klasse weitergeben Java Basics - Anfänger-Themen 13
I JTextfield[] innerhalb eines Itemlistener aufrufen Java Basics - Anfänger-Themen 2
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
S Verhalten von JTextField in einem JTabbedPane (Register) Java Basics - Anfänger-Themen 6
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2
G JTextField, DocumentListener, Fehler bei setText() Java Basics - Anfänger-Themen 3
S Input/Output GUI Eingabe in JTextfield in Variable speichern Java Basics - Anfänger-Themen 7
C JTextField füllen Java Basics - Anfänger-Themen 5
C jtextfield und jtable Java Basics - Anfänger-Themen 34
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
K Encoding von JTextfield Java Basics - Anfänger-Themen 2
X JTable mit Inhalten aus JTextField o.ä. füllen Java Basics - Anfänger-Themen 4
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
M Datumsformat in JTextfield Java Basics - Anfänger-Themen 10
S JTextField nervt rum... Java Basics - Anfänger-Themen 4
B JTextField Java Basics - Anfänger-Themen 5
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Verknüpfung von JButton to JTextField Java Basics - Anfänger-Themen 4
B JTextField Java Basics - Anfänger-Themen 5
C Problem mit JTextField Java Basics - Anfänger-Themen 8
A Klassen JTextField eigtl leer aber es werden Methoden ect. angezeigt Java Basics - Anfänger-Themen 9
L JTextField auslesen mit getText() wie abspeichern? Java Basics - Anfänger-Themen 2
D jtextField Ausgabe double Java Basics - Anfänger-Themen 4
D JTextField verwenden ohne Eingabe einer Variable Java Basics - Anfänger-Themen 4
J GUI - JTextField Anordnung Java Basics - Anfänger-Themen 2
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
S JTextfield Auswertung mit FocusListener Java Basics - Anfänger-Themen 7
M Hilfe JTextfield Ergebnis Java Basics - Anfänger-Themen 2
B GUI- JTextField - Übung Java Basics - Anfänger-Themen 5
M OOP Wie greife ich auf JTextField zu? Java Basics - Anfänger-Themen 2
P Eingabe aus JTextField/Area an eine andere Klasse übergeben. Java Basics - Anfänger-Themen 2
M Input/Output JFrame mit JButton und JTextfield Java Basics - Anfänger-Themen 114
F GUI JTextField aktualisieren Java Basics - Anfänger-Themen 3
B jTextField bei Enter eingabe absenden? Java Basics - Anfänger-Themen 2
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
A fire button on JTextField Enter Java Basics - Anfänger-Themen 2
G JTextField() Anzeige - if-Anweisungen Java Basics - Anfänger-Themen 2
R Erste Schritte codecopieren von Editor nach Eclipse / JTextField Java Basics - Anfänger-Themen 4
L Zeichen in jTextField markieren Java Basics - Anfänger-Themen 2
M Text auf JTextField auslesen per Button Java Basics - Anfänger-Themen 4
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
L Null Pointer Exception bei Focus Event bei einem JTextField Java Basics - Anfänger-Themen 2
C Ausgewähltes Element einer JCombobox in JTextField Java Basics - Anfänger-Themen 3
H Prüfen welches JTextfield ausgewählt/selektiert ist? Java Basics - Anfänger-Themen 7
B Input/Output jTextField - KeyEvent - Zeichen soll nicht erscheinen Java Basics - Anfänger-Themen 6
D JPasswordField - JTextField Java Basics - Anfänger-Themen 5
J JTextfield mit Enter leeren Java Basics - Anfänger-Themen 3
H JtextField auslesen und in JLable einfuegen Java Basics - Anfänger-Themen 7
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
S mit eigener Klasse JTextField ändern Java Basics - Anfänger-Themen 3
M JTextField durch Button auslösen Java Basics - Anfänger-Themen 9
J JLabel mit Hilfe von JTextfield benennen Java Basics - Anfänger-Themen 7
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
M JTextField Java Basics - Anfänger-Themen 7
O JTextField Schriftgröße ändern Java Basics - Anfänger-Themen 1
J Nur ein Komma in JTextField zulassen... Java Basics - Anfänger-Themen 9
C Problem mit JPopupMenu, JTextField und Keylistener Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben