Box Layot pomoc w ustawieniu buttonów

Box Layot pomoc w ustawieniu buttonów
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

hej mam takie pytanie odnosnie box layout, bo proboje wykorzystac stworzyc to tak zeby przyciski byly kolejno jedno pod drugim a nie lini, podpowie ktoś jak to zrobić? wrzucam tutaj kod moze bedzie latwiej wam powiedziec, z gory dzieki za pomoc :)

Kopiuj
 import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.FlowLayout;

public class System{

	public static void main(String[] args){
	
		Okno ramka = new Okno();
		ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ramka.pack();
		ramka.setVisible(true);
		
	
	}

}

class Okno extends JFrame{

	public Okno(){
	
		setSize(600,500);
		
		setTitle("System Obsługi Floty");
		
		Zawartosc panel = new Zawartosc();
		
		Container pane = getContentPane();

		pane.add(panel);
	
	}

}

class Zawartosc extends JPanel{

	public Zawartosc(){
		
		
		setLayout(new BoxLayout(BoxLayout.Y_AXIS));
	
	
		JButton spalanie = new JButton("Oblicz Spalanie Pojazdu");
		
		JButton flota = new JButton("Flota Pojazdów");
		
		JButton pojazd = new JButton("Dodaj pojazd do floty");
	
	
		
		
		add(spalanie);
		add(flota);
		add(pojazd);
	
	
	}

}

Wlasnie nie wiem jak to jest z tym layoutem, a w dokumentacji api jeszcze się nie odnajduje do konca niestety, chce ulozyc te elementy jeden pod drugim lecz niestety nie potrafie podpowie ktoś?

Q4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 103
0
Kopiuj
import javax.swing.*;
import java.awt.*;

public class System {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                Okno ramka = new Okno();
                ramka.setVisible(true);
            }
        });
    }
}

class Okno extends JFrame {

    public Okno() {
        setSize(600, 500);
        setTitle("System Obsługi Floty");
        Zawartosc panel = new Zawartosc();
        Container pane = getContentPane();
        pane.add(panel);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();

    }
}

class Zawartosc extends JPanel {

    public Zawartosc() {
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
        JButton spalanie = new JButton("Oblicz Spalanie Pojazdu");
        JButton flota = new JButton("Flota Pojazdów");
        JButton pojazd = new JButton("Dodaj pojazd do floty");
        add(spalanie);
        add(flota);
        add(pojazd);
    }
}

Na przyszłość zapamiętaj sobie też o tym wywołaniu swingutilities (bardzo ważne w przypadku programów z interfejsem graficznym). Jest to również przydatne gdybyś chciał np. zmieniać tekst okna z innego wątku.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

dzieki za pomoc, a powiedz mi bo w ten sposob uzyskalem tak troszke nie rowne przyciski, a jakbym chcial je zrobić aby kazdy mial taka sama wielkość? probowalem z np setPreferredSize(new Dimension(200, 30)) ale to nie bardzo mi się udaje;/

kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
0

proponuje zastosować setMaximumSize

Kopiuj
spalanie.setMaximumSize(new Dimension(200, 100)); 
flota.setMaximumSize(new Dimension(200,100));
pojazd.setMaximumSize(new Dimension(200, 100)); 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.