Rozmieszczenie elementow w oknie.

0

Witam. Jestem początkujący pisze pewien program, dodałem główne elementy [buttony, radioboxy, combobox] i mam duży problem z tym żeby rozmieścić je w oknie w odpowiadający mi sposób. Szukałem trochę na forum ale nie znalazłem rozwiązania. Używałem metody setLocation(x, y) i setBounds(x, y, width, height), zastosowanie tej 2 widziałem w internecie. Zamieszczam kod i uprzejmie proszę o pomoc.

package spalacz;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.TextField;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class interfejs extends JFrame{
	
	private JComboBox comboSamochod;
	private JTextField textTrasa;
	private JTextField textPora;
	private JRadioButton radioTrasa;
	private JRadioButton radioMieszany;
	private JRadioButton radioMiasto;
	private JRadioButton radioLato;
	private JRadioButton radioZima;
	private JRadioButton radioWiosnaJesien;
	private JTextField textPaliwa;
	private JTextField textDlugosc;
	// Zmienne wyniku
	private JTextField textCalkowite;
	private JTextField textSto;
	private JTextField textKoszt;
	private JTextField textCzas;
	//button oblicz
	private JButton buttonOblicz;


	public interfejs(){
		
		//postawienie paczki
		Container cont;
		cont = this.getContentPane();
		cont.setLayout(new GridLayout());
		
		//combobox
		String[] samochodyStrings = { "Toyota Corolla", "Skoda Fabia", "Polonez", "Maluch", "Fiat" };
		comboSamochod = new JComboBox(samochodyStrings);
		cont.add(comboSamochod);
		
		//tekst Rodzaj trasy
		textTrasa = new JTextField();
		textTrasa.setText("Rodzaj trasy");
		//textTrasa.setSize(100);
		cont.add(textTrasa);
		//text dlugosc trasy
		textDlugosc = new JTextField();
		textDlugosc.setText("Dlugosc trasy");
		cont.add(textDlugosc);
		
	
	
		
		//check box rodzaj trasy
		radioTrasa = new JRadioButton();
		radioTrasa.setText("Trasa");
		radioTrasa.setLocation(200, 100);
		cont.add(radioTrasa);
		
		radioMieszany = new JRadioButton();
		radioMieszany.setText("Mieszany");
		cont.add(radioMieszany);
		
		radioMiasto = new JRadioButton();
		radioMiasto.setText("Miasto");
		cont.add(radioMiasto);
		
		radioLato = new JRadioButton();
		radioLato.setText("Lato");
		cont.add(radioLato);
		
		radioWiosnaJesien = new JRadioButton();
		radioWiosnaJesien.setText("Wiosna-Jesien");
		cont.add(radioWiosnaJesien);
		
		radioZima = new JRadioButton();
		radioZima.setText("Zima");
		radioZima.setBounds(20, 80, 100, 100);
		cont.add(radioZima);
		
		//grupa radiobuttonow dla trasy
		
		ButtonGroup bgtrasa = new ButtonGroup();
		bgtrasa.add(radioTrasa);
		bgtrasa.add(radioMieszany);
		bgtrasa.add(radioMiasto);
		
		//grupa radiobuttonow dla pory roku
		
		ButtonGroup bgpora = new ButtonGroup();
		bgpora.add(radioLato);
		bgpora.add(radioZima);
		bgpora.add(radioWiosnaJesien);
		
		// button oblicz
		radioZima.setBounds(x, y, width, height)
		
	}
	
	
	
	
	
	
	public static void main(String[] args) {
			interfejs okno = new interfejs();
			okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			okno.setVisible(true);
			//okno.setResizable(false);
			okno.setSize(800, 600);
			okno.setLocation(200, 300);
			okno.pack();
		
		
	
			
		
		};
		

	}

0

ale jaki masz z tym problem? co chcesz osiągnąć? wątpie, żeby komus chciało sie analizować cały kod ;)
Więcej precyzji ; )

0

Buttony, Radiobuttony, comboboxy są ustawione jeden za drugimu i zajmują całą wysokość okna. Chciał bym zmieniać ich rozmiary i ustawiać je w konkretnych punktach.

1

Spróbuj na początek 2 możliwosci:
cont.setLayout(null);
lub
cont.add(javax.swing.Box.createVerticalGlue());

i potem sobie rozmieszczasz setBound'sem, mysle ze powinno zadziałać chociaż ja robiłem to wprost na jFrame a nie wiem jak będzie u Ciebie na containerze ( nie wiem nawet co to jest :) )

0

Dzięki **gawkes11 ** jak na razie problem się rozwiązał działam dalej i czekam na kolejne trudności :) Wielkie dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1