Hi,
Ich habe eine Oberfläche mit 3 Panel erstellt. (sieh code)
Die oberen 3 Zeilen (panel1) werden korrekt dargestellt. Das Panel 2 wird das Ergebnisfeld sehr hoch dargestellt, ebenso wie die beiden Buttons in Panel 3.
Ich vermute mal das liegt an dem layoutManger für das win. Gibt es eine Möglichkeit wie ich für jede Komponente innerhalb des Windows die Höhe und Breite (eventuell die Position) seperat darstellen kann? Wenn ja wie?
Danke
Heiner
Ich habe eine Oberfläche mit 3 Panel erstellt. (sieh code)
Code:
package Astronomie;
import java.awt.*;
import javax.swing.*;
//-------------------------------------------------------------------------
//- Diese Klasse berechnet das julianische Datum -
//-------------------------------------------------------------------------
public class julianisch extends JFrame
{
public julianisch( int x, int y )
{
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
setSize( x, y );
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation( (d.width - getSize().width ) / 2,
(d.height - getSize().height) / 2 );
}
public static void init_window()
{
JFrame win = new julianisch(400,300);
win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
win.setTitle("Berechnet Julianisches Datum");
Panel panel1 = new Panel();
panel1.setBackground(Color.BLACK);
panel1.setLayout(new GridLayout(3,2));
JLabel L1 = new JLabel("Jahreszahl:");
JLabel L2 = new JLabel("Monat:");
JLabel L3 = new JLabel("Tag:");
JLabel L4 = new JLabel("Ergebnis:");
L1.setFont(new Font("Serif",Font.BOLD,20));
L1.setForeground(Color.MAGENTA);
L2.setFont(new Font("Serif",Font.BOLD,20));
L2.setForeground(Color.MAGENTA);
L3.setFont(new Font("Serif",Font.BOLD,20));
L3.setForeground(Color.MAGENTA);
L4.setFont(new Font("Serif",Font.BOLD,20));
L4.setForeground(Color.RED);
JTextField TJahr = new JTextField(10);
JTextField TMonat = new JTextField(10);
JTextField TTag = new JTextField(10);
JTextField TErg = new JTextField(10);
JButton BEnd = new JButton("Ende");
JButton BRech = new JButton("Berechnen");
panel1.add(L1);
panel1.add(TJahr);
panel1.add(L2);
panel1.add(TMonat);
panel1.add(L3);
panel1.add(TTag);
Panel panel2 = new Panel();
panel2.setLayout(new GridLayout(1,1));
panel2.add(L4);
panel2.add(TErg);
Panel panel3 = new Panel();
panel3.setLayout(new BorderLayout());
panel3.add(BRech, BorderLayout.WEST);
panel3.add(BEnd, BorderLayout.EAST);
win.setLayout(new GridLayout(3,1));
win.add(panel1);
win.add(panel2);
win.add(panel3);
// win.pack();
win.setVisible( true );
}
}
Die oberen 3 Zeilen (panel1) werden korrekt dargestellt. Das Panel 2 wird das Ergebnisfeld sehr hoch dargestellt, ebenso wie die beiden Buttons in Panel 3.
Ich vermute mal das liegt an dem layoutManger für das win. Gibt es eine Möglichkeit wie ich für jede Komponente innerhalb des Windows die Höhe und Breite (eventuell die Position) seperat darstellen kann? Wenn ja wie?
Danke
Heiner