Erste Schritte Content Pane scheint zweigeteilt zu sein.

Worldgate

Neues Mitglied
Liebe Gemeinde, ich bin noch relativ neu in der Java und auch in der Programmierwelt und sitze nun schon seit mehreren Tagen an einer Übungsaufgabe an der ich einfach nicht wieterkomme. Durch Google konnte ich leider keine Antwort, bzw. Hilfe finden und privat kenne ich niemanden, der sich mit Java und Programmieren befasst. So:
es soll ein Frame entwickelt werden, welches eine Notenbilanz ausrechnen soll. Der Knackpunkt ist, dass dabei JLabels und JTextFields, sowie JButtons ein- bzw. ausgeblendet werden sollen. Dies habe ich, denke ich hinbekommen. Siehe Code. Das Problem ist folgendes: das zweite TextField (txtNote) hat die y-Bounds 110.Die Dicke 20. Alle JLabels die ich darunter einblenden möchte. Quasi 130 und mehr werden nicht mehr auf den Frame angezeigt. Wo habe ich meinen Denkfehler? Was übersehe ich? Oder habe ich eventuell falsche Einstellungen in Eclipse?
Code:
package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.Rectangle;

public class Notenbilanz extends JFrame {

    private JPanel contentPane;
    private JTextField txtAnzahlNoten;
    private JTextField txtNote;
    private JButton btnUebernehmenNote, btnUebernehmenAnzahl, btnNeueBerechnung, btnEnde;
    private JLabel lblAnzahlEingegebenerNoten, lblNotenschnitt, lblNotenZaehler, lblBesteNote, lblSchlechtesteNote;
    private int counter = 0;
    private double durchschnitt;
       
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Notenbilanz frame = new Notenbilanz();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Notenbilanz() {
        setBounds(new Rectangle(465, 300, 0, 0));
        setTitle("Notenbilanz");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(465, 300, 468, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
       
        JLabel lblAnzahlNoten = new JLabel("Anzahl Noten");
        lblAnzahlNoten.setBounds(10, 10, 75, 20);
        contentPane.add(lblAnzahlNoten);
       
        txtAnzahlNoten = new JTextField();
        txtAnzahlNoten.setBounds(10, 40, 75, 20);
        txtAnzahlNoten.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                    if (txtAnzahlNoten.getText().equals("")) {
                        JOptionPane.showMessageDialog(null, "Geben Sie die Notenanzahl ein");
                    } else {
                    labelEinblenden();
                    }
                }
            }
        });
        contentPane.add(txtAnzahlNoten);
        txtAnzahlNoten.setColumns(10);
       
        txtNote = new JTextField();
        txtNote.setBounds(10, 110, 75, 20);
        txtNote.setVisible(false);
        contentPane.add(txtNote);
        txtNote.setColumns(10);
       
        btnUebernehmenAnzahl = new JButton("\u00DCbernehmen");
        btnUebernehmenAnzahl.setBounds(110, 40, 150, 20);
        btnUebernehmenAnzahl.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                if (txtAnzahlNoten.getText().equals("")) {
                    JOptionPane.showMessageDialog(null, "Geben Sie die Notenanzahl ein");
                } else {
                    labelEinblenden();
                }
            }
        });
        contentPane.add(btnUebernehmenAnzahl);
       
        btnEnde = new JButton("Ende");
        btnEnde.setBounds(335, 230, 90, 20);
        btnEnde.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                System.exit(0);
            }
        });
        contentPane.add(btnEnde);
       
        btnNeueBerechnung = new JButton("Neue Berechnung");
        btnNeueBerechnung.setBounds(290, 10, 150, 20);
        btnNeueBerechnung.setVisible(false);
        contentPane.add(btnNeueBerechnung);
    }
   
    private void labelEinblenden() {
        txtNote.setVisible(true);
        txtNote.requestFocus();
        txtAnzahlNoten.setOpaque(false);
        txtAnzahlNoten.setEditable(false);
        btnUebernehmenAnzahl.setVisible(false);
       
        lblNotenZaehler = new JLabel(counter +". Note");
        lblNotenZaehler.setBounds(10, 85, 75, 20);
        contentPane.add(lblNotenZaehler);
       
        lblAnzahlEingegebenerNoten = new JLabel("Anzahl eingegebener Noten: " + counter);
        lblAnzahlEingegebenerNoten.setBounds(10, 140, 250, 20);
        contentPane.add(lblAnzahlEingegebenerNoten);
               
        lblNotenschnitt = new JLabel("Notenschnitt: " + durchschnitt);
        lblNotenschnitt.setBounds(10, 170, 250, 20);
        contentPane.add(lblNotenschnitt);
       
        lblBesteNote = new JLabel("beste Note");
        lblBesteNote.setBounds(10, 200, 250, 20);
        contentPane.add(lblBesteNote);
       
        lblSchlechtesteNote = new JLabel("schlechtest Note");
        lblSchlechtesteNote.setBounds(10, 230, 250, 20);
        contentPane.add(lblSchlechtesteNote);
       
        btnUebernehmenNote = new JButton("\u00DCbernehmen");
        btnUebernehmenNote.setBounds(110, 110, 150, 20);
        contentPane.add(btnUebernehmenNote);
    }
}
 

Worldgate

Neues Mitglied
Durch Zufall kam ich eben nach Tagen doch auf die Lösung. Ich habe das Fenster, als ich es ausgeführt hatte - quasi im Testmodus - mit der Maus größer gezogen und siehe da - meine Labels tauchten auf. Rumprobiert und festgestellt, dass die immer auftauchen, wenn eine Größenänderung des Frames stattfindet. Mir gedacht, das Einzige was dabei passiert und quasi, dass das Frame/Layout (bin mit den Fachbegriffen noch nicht vertraut) neu berechnet wird. Google half mir dann weiter und ich baute die Methode: 'contentPane.repaint();' ein. Jetzt klappt es so wie es soll und ich kann mit der Aufgabe weitermachen. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Content Pane / BorderLayout Java Basics - Anfänger-Themen 2
S org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog Java Basics - Anfänger-Themen 7
B java.mail - Email antworten und Content ausgeben Java Basics - Anfänger-Themen 4
I JAXBContext / UnmarshalException / Content is not allowed in prolog / encoding="iso-8859-15" Java Basics - Anfänger-Themen 2
W Java XML-Reader: Content not allowed in Prolog Java Basics - Anfänger-Themen 7
M javamail: HTML-Tags aus content eliminieren Java Basics - Anfänger-Themen 2
3 User erstellen / Oracle Content DB Java Basics - Anfänger-Themen 2
I Strukturfrage: Navigation und Content ähnlich wie HP Java Basics - Anfänger-Themen 4
J Content austauschen durch ActionListener Java Basics - Anfänger-Themen 11
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
U JavaFX eine Vbox Instanz pro Pane? Java Basics - Anfänger-Themen 2
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
S JOption.Pane Java Basics - Anfänger-Themen 2
T JOption Pane: Sonderzeichen verbieten? Java Basics - Anfänger-Themen 14
M Tabbed Pane wechsel via HotKey Java Basics - Anfänger-Themen 10
M Tabbed Pane Java Basics - Anfänger-Themen 5
TRunKX Tabbed Pane Problem Java Basics - Anfänger-Themen 6
G HTML in Pane öffnen+anzeigen? Java Basics - Anfänger-Themen 3
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
J Programm scheint zu spinnen Java Basics - Anfänger-Themen 3
R Deserialisierung scheint nicht zu stattzufinden Java Basics - Anfänger-Themen 13
K Variablen Variable scheint nicht initialisiert zu sein Java Basics - Anfänger-Themen 10
L Java Bibliothek scheint zu fehlen Java Basics - Anfänger-Themen 4
M Arrays clonen mit clone() scheint nicht zu funktionieren Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben