BorderLayout, 2Panels, EAST wird nicht angezeigt ??

MasterShredder

Aktives Mitglied
Hallo,

ich habe hier einen JFrame dem ich das BorderLayout zugewiesen habe.
Dort will ich nun 2 Panels zuweisen das Erste CENTER und das Zweite EAST.

CENTER wird korrekt angezeigt EAST aber nicht, dort stimmt die Schrift nicht und es hat überhaupt keine Wirkung wenn ich die Positionen der Elemente ändere.

Java:
package Hauptprogramm;
import java.awt.BorderLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.WindowConstants;

public class Verbrauchsrechner extends JFrame {
    
    //Attribute
    
    private static JTextField eingabeKubik;   
    private static double zustandszahl = 0.94876, brennwert = 11.296, abzuege = 2236;
    private static double doubEingabe, rchztr, kwh, aktKstn;
    private static JTextField tFanzRchztr;
    private static JTextField tFanzKwh;
    
    //Verrechnung
    
        public static void verrechnen() {
            rchztr = doubEingabe - abzuege;
            kwh = Math.round(rchztr * zustandszahl * brennwert);
            //kWh * Preis/kWh auf Euro + Grundgebuer - Vorjahresrechnung
            aktKstn = kwh * 6.39 / 100 + 123.76;
            aktKstn = Math.round(385.83 - aktKstn);
            
        }
    
    //Konstruktor für Fensteraufbau
    public Verbrauchsrechner() {
        setBounds(100, 100, 1000, 300);
        setLayout(new BorderLayout());
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        
        //Fenster erstellen
        Verbrauchsrechner hFenster = new Verbrauchsrechner();
        
        //Erstellung Gasrechner
        
        JPanel gasPanel = new JPanel();
        gasPanel.setLayout(null);
        gasPanel.setBounds(100, 100, 500, 300);
        hFenster.add(gasPanel, BorderLayout.CENTER);
        
        //Label Beschriftungen
        
                JLabel lblBakt = new JLabel("Aktueller Stand:");
                lblBakt.setBounds(70, 200, 115, 20);
                gasPanel.add(lblBakt);
                
                JLabel lblBkubik = new JLabel("m³");
                lblBkubik.setBounds(311, 198, 70, 20);
                gasPanel.add(lblBkubik);
                
                JLabel lblBstndKwh = new JLabel("Stand in kWh:");
                lblBstndKwh.setBounds(86, 140, 99, 20);
                gasPanel.add(lblBstndKwh);
                
                JLabel lblBeinKwh = new JLabel("kWh");
                lblBeinKwh.setBounds(311, 140, 31, 20);
                gasPanel.add(lblBeinKwh);
                
                JLabel lblBrchztr = new JLabel("Rechnungszeitraum:");
                lblBrchztr.setBounds(39, 170, 146, 20);
                gasPanel.add(lblBrchztr);
                
                JLabel lblKubRchztr = new JLabel("m³");
                lblKubRchztr.setBounds(311, 169, 70, 20);
                gasPanel.add(lblKubRchztr);
                
                JLabel lblBdiffVj = new JLabel("Differenz Vj:");
                lblBdiffVj.setBounds(311, 0, 90, 20);
                gasPanel.add(lblBdiffVj);
                
                //Label Ausgaben
                
                JLabel lblDiffVj = new JLabel("");
                lblDiffVj.setBounds(397, 0, 70, 20);
                gasPanel.add(lblDiffVj);
                
                tFanzKwh = new JTextField();
                tFanzKwh.setBackground(UIManager.getColor("Button.background"));
                tFanzKwh.setBounds(190, 140, 120, 20);
                gasPanel.add(tFanzKwh);
                
                tFanzRchztr = new JTextField();
                tFanzRchztr.setBackground(UIManager.getColor("Button.background"));
                tFanzRchztr.setBounds(190, 170, 120, 20);
                gasPanel.add(tFanzRchztr);
                
                //Action Eingabe und Button
                
                eingabeKubik = new JTextField();
                eingabeKubik.setBackground(UIManager.getColor("Button.background"));
                eingabeKubik.setBounds(190, 200, 120, 20);
                gasPanel.add(eingabeKubik);
                
                JButton btnOk = new JButton("OK");
                btnOk.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        doubEingabe = Double.parseDouble(eingabeKubik.getText());
                        verrechnen();
                        tFanzKwh.setText(kwh + "");
                        tFanzRchztr.setText(rchztr + "");
                        lblDiffVj.setText(aktKstn + "");
                    }
                });
                btnOk.setBounds(220, 230, 60, 25);
                gasPanel.add(btnOk);
            
                //Erstellung Stromrechner
                
                JPanel stromPanel = new JPanel();
                gasPanel.setLayout(null);
                gasPanel.setBounds(100, 100, 500, 300);
                hFenster.add(stromPanel, BorderLayout.EAST);
                                
                //Label Beschriftungen
                
                Label lblVersorger = new Label("Versorger: innogy Direkt");
                lblVersorger.setBounds(250, 300, 50, 50);
                stromPanel.add(lblVersorger);
                
                Label lblPreis = new Label("Grundgebühr: 97,35 €  Preis pro kWh: 28,01 ct");
                lblVersorger.setBounds(250, 250, 50, 50);
                stromPanel.add(lblPreis);
                
        //Fenster Optionen Fenster anzeigen
//        hFenster.pack();
        hFenster.setVisible(true);
        
    }


}
 

LimDul

Top Contributor
Ohne tiefer reinzuschauen.
Wenn du einen LayoutManager verwendest, dann sind sämtliche Aufrufe von setBounds überflüssig. Der ist dazu da das zu berechnen, mittels eines Aufrufs von hFenster.pack() (Der bei dir auskommentiert ist).

Allerdings sollten dann deine SubPanels ebenfalls LayoutManager bekommen, damit das klappt.
Alternativ musst du deinen SubPanels beibringen was ihre preferredSize ist - damit arbeitet nämlich der LayoutManager. Nur ist es nicht sinnvoll, die Panels ohne LayoutManager zu nutzen und nur bei Frame einen zu haben. Denn dann wird das, sobald sich die Größe des Fensters ändert das mit Sicherheit nicht mehr so verhalten, wie du willst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
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
Spin Borderlayout Java Basics - Anfänger-Themen 4
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
B Bei Swing weg vom North-West-South-East-Prinzip Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben