BoarderLayout wird nicht richtig dargestellt

  • Themenstarter Themenstarter Mumpelwutz
  • Beginndatum Beginndatum
M

Mumpelwutz

Gast
Im folgenden Programm habe ich ein Problem Mit der Darstellung von BorderLayout. Meines Wissens sollte es so, wie es da steht nicht zu so übertriebenen Überlappungen kommen. Wäre schön wenn mir dabei jmd helfen kann 🙂
Danke im vorraus schonmal
Java:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.*;
import java.awt.*;

import java.text.*;
import java.util.*;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.*;
import javax.swing.*;


 public class Schuhkalkulator extends JFrame implements Runnable{



     
       SimpleDateFormat  sdf, sdf1;
       JMenu             jm_uhr;

       private int anzeige = 0;
       private JProgressBar jpb_prozent;
       private JTextField   jtf_fusslaengecm1;
       private JTextField   jtf_schuhgroesse1;
       private JTextField   jtf_schuhgroesse2;
       private JTextField   jtf_fusslaengecm2;

       public Schuhkalkulator(String title) {

             JLabel            jl_ueberschrift  = new JLabel("Schuhkalkulator");
                               jl_ueberschrift.setFont(new Font("Sans_Serif", Font.BOLD, 20));
                               
             JLabel            jl_text1 = new JLabel("Fußlänge in Centimeter: ");
             JLabel            jl_text2 = new JLabel("Schuhgröße: ");
             JLabel            jl_text3 = new JLabel("Schuhgröße: ");
             JLabel            jl_text4 = new JLabel("Fußlänge in Centimeter: ");


             JButton           jb_berechne1     = new JButton("                       Berechne 1                      ");
                               jb_berechne1.addActionListener(new Lauscher());
                               
             JButton           jb_clear         = new JButton("                        neustart                        ");
                               jb_clear.addActionListener(new Lauscher());
                               
             JButton           jb_berechne2     = new JButton("                       Berechne 2                      ");
                               jb_berechne2.addActionListener(new Lauscher());
                               

                               jtf_schuhgroesse2= new JTextField(13);
                               jtf_fusslaengecm2= new JTextField(8);

                               jpb_prozent      = new JProgressBar(0,100);
                               jpb_prozent.setValue(anzeige);


                               jtf_schuhgroesse1= new JTextField(13);
                               jtf_fusslaengecm1= new JTextField(8);


                               sdf              = new SimpleDateFormat("dd.MM.yyyy");
                               sdf1             = new SimpleDateFormat("HH:mm:ss");

             JMenu             jm_datei         = new JMenu("Datei");
                               jm_uhr           = new JMenu();

             JMenuItem         jmi_teil1      = new JMenuItem(" Teil 1 ");
                               jmi_teil1.addActionListener(new Lauscher());
                               jm_datei.add(jmi_teil1);

             JMenuItem         jmi_teil2      = new JMenuItem(" Teil 2 ");
                               jmi_teil2.addActionListener(new Lauscher());
                               jm_datei.add(jmi_teil2);

             JMenuItem         jmi_beenden      = new JMenuItem(" Ende ");
                               jmi_beenden.addActionListener(new Lauscher());
                               jm_datei.add(jmi_beenden);

             JMenuBar          jmb_time         = new JMenuBar();
                               jmb_time.setLayout(new BorderLayout());
                               jmb_time.add(jm_datei, BorderLayout.WEST);
                               jmb_time.add(jm_uhr, BorderLayout.EAST);

             setJMenuBar       (jmb_time);
             //***************************************
             JPanel teil1 = new JPanel();
             teil1.setLayout(new FlowLayout());
             teil1.add(jl_text1);
             teil1.add(jtf_fusslaengecm1);
             teil1.add(jl_text2);
             teil1.add(jtf_schuhgroesse1);
             teil1.add(jb_berechne1);
             //***************************************
             JPanel teil2 = new JPanel();
             teil2.setLayout(new FlowLayout());
             teil2.add(jl_text3);
             teil2.add(jtf_schuhgroesse2);
             teil2.add(jl_text4);
             teil2.add(jtf_fusslaengecm2);
             teil2.add(jb_berechne2);
             //***************************************
             JPanel top = new JPanel();
             top.setLayout(new BorderLayout());
             top.add(jmb_time, BorderLayout.NORTH);
             top.add(jl_ueberschrift, BorderLayout.SOUTH);
             
             JPanel left = new JPanel();
             left.setLayout(new BorderLayout());

             JPanel right = new JPanel();
             right.setLayout(new BorderLayout());
             
             JPanel middle = new JPanel();
             middle.setLayout(new BorderLayout());
             middle.add(teil1, BorderLayout.NORTH);
             middle.add(teil2, BorderLayout.SOUTH);
             
             JPanel bottom = new JPanel();
             bottom.setLayout(new BorderLayout());
             bottom.add(jpb_prozent, BorderLayout.NORTH);
             bottom.add(jb_clear, BorderLayout.SOUTH);
             //***************************************
             Container cp = getContentPane();
             cp.setLayout(new BorderLayout());
             cp.add(top, BorderLayout.NORTH);
             cp.add(left, BorderLayout.WEST);
             cp.add(right, BorderLayout.EAST);
             cp.add(middle, BorderLayout.CENTER);
             cp.add(bottom, BorderLayout.SOUTH);
       }

       public void run() {

              while(true) {
                     Date zeit = new Date();
                     jm_uhr.setText("Datum: "+sdf.format(zeit)+"    Uhrzeit: "+sdf1.format(zeit));
                     try {
                         Thread.sleep(1000);
                     }
                     catch(InterruptedException e) {}
              }
       }

       class Lauscher implements ActionListener {
             public void actionPerformed(ActionEvent e) {
                    String button = e.getActionCommand();
                    if (button.equals("                       Berechne 1                      ")) {
                               anzeige = anzeige+50;
                               jpb_prozent.setValue(anzeige);
                               double fusslaenge1 = Double.parseDouble(jtf_fusslaengecm1.getText());
                               double schuhgroesse1       = fusslaenge1*11/7;
                               jtf_schuhgroesse1.setText("" + schuhgroesse1);
                    }
                    //*******************************
                    if(button.equals("                       Berechne 2                      ")) {
                               anzeige = anzeige+50;
                               jpb_prozent.setValue(anzeige);
                               double schuhgroesse2 = Double.parseDouble(jtf_schuhgroesse2.getText());
                               double fusslaenge2     = schuhgroesse2*7/11;
                               jtf_fusslaengecm2.setText("" + fusslaenge2);
                    }
                    //*******************************
                    if(button.equals(" Ende ")) {
                               setVisible(false);
                               setDefaultCloseOperation(EXIT_ON_CLOSE);
                    }
                    //*******************************
                    if(button.equals(" Teil 1 ")) {

                    }
                    //*******************************
                    if(button.equals(" Teil 2 ")) {

                    }
                    //*******************************
                    if(button.equals("                        neustart1                        ")) {
                               jtf_fusslaengecm1.setText("");
                               jtf_schuhgroesse1.setText("");
                               jtf_fusslaengecm2.setText("");
                               jtf_schuhgroesse2.setText("");
                               anzeige = 0;
                               jpb_prozent.setValue(anzeige);
                    }
             }
       }

    public static void main(String[] args) {
               Schuhkalkulator  fenster = new Schuhkalkulator(" Schuhgrößenkalkulator v. 1.0 ");
                                fenster.setSize(270,400);
                                fenster.setLocation(200,300);
                                fenster.setVisible(true);
                                fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                Thread uhr = new Thread(fenster);
                                uhr.start();
    }
    
 }
 
Naja, die Fenstergröße gibst ja schließlich du vor:
Java:
fenster.setSize(270,400);

wo/wie soll er denn die Komponenten sonst platzieren?
Probiers doch vllt. mal mit einem [c]fenster.pack();[/c] stattdessen!
 
Sieht schonmal besser aus, vielen dank 🙂
Gibt es jetzt noch eine möglichkeit die Höchstbreite festzusetzen?
etwas wie

Java:
fenster.setWidth(200);

?
 

Neue Themen


Zurück
Oben