ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
720
720
EMPFEHLEN
-
Hi,
Ich habe eine Oberfläche mit 3 Panel erstellt. (sieh code)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
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
-
Ja liegt es!
Das GridLayout gibt den drei Panels genau gleich viel Platz, dadurch sind Die Komponenten in den leereren Pannels größer.
Intreressant für dich könnten Group oder Box Layout sein. Die sind zwar etwas komplizierter, ermöglichen aber mehr Freiheiten.
Grid Layout solltets du nur verwenden wenn alle enthaltenen Komponenten gleich groß sein sollen.
Oft bietet sich auch ein BorderLayout an, wobei du hier beachten musst dass die Komponenten an unterschiedlichen Positionen unterschiedlich stark resized werden.There are 10 kind of people, those who understand binary and those who don't.
-
08.10.08 13:51 #3
- Registriert seit
- Sep 2008
- Ort
- Osnabrück (Niedersachsen)
- Beiträge
- 244
Sehr vielseitig ist das TableLayout. Musst du aber importieren. Es gibt viele Tutorials dazu, wie man es benutzt. Das bekanntest Tutorial ist denk ich TableDancer.
-
Falls du aber das Layout nicht ändern möchtest sondern nur die Größe der Buttons festlegen willst, kannst du das auch ganz simpel über "button.setPrefferedSize( new Dimension( [breite], [höhe] ) )" machen. Wenn's damit nicht klappt versuch es mit setMaximumSize( new Dimension( [breite], [höhe] ) )
-
Nein klappt es nicht.
Das Gridlayout ignoriert GrößenangabenThere are 10 kind of people, those who understand binary and those who don't.
-
Ähnliche Themen
-
Prozedur zu groß
Von CrimeTime im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 30.12.06, 21:54 -
gif zu groß, bei ae
Von emulsion im Forum Videoschnitt, Videotechnik & -produktionAntworten: 0Letzter Beitrag: 14.02.05, 13:18 -
Datei zu groß?
Von VinceJack im Forum PHPAntworten: 2Letzter Beitrag: 11.01.05, 16:17 -
Panel ist zu groß sollte nur so groß sein wie das Rechteck
Von downset04 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 11.01.05, 10:23 -
Image Buttons als Submit-Buttons
Von Stefcore im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 10.04.02, 10:20





Zitieren
Login





