JLabel e JCombobox na mesma linha

Prezados, olá.

Sou estudante de ADS, estou no 3º semestre e tendo aulas de programação orientado a objeto. Esse é meu primeiro tópico.
Seguinte, eu estou desenvolvendo um sistema para vendas, utilizo um JLabel para o produto e JCombobox para a quantidade de produtos. Porem, ao executar, fica um em cima do outro, e eu gostaria que eles ficassem na mesma linha. Além disso, não estou conseguindo deixar que o combobox fique do tamanho de um caractere ou do tamanho do numero selecionado, ele esta ocupando uma linha inteira. Dei uma lida no javadoc do JOptionpane e JCombobox e não achei algo que ajude. Pode ser que meu ingles ruim tenha me ferrado nessa tb, mas preciso de ajuda.

Quero dizer que esse site esta sendo vital pra minha formação, não sou nenhum garoto (35 anos) e sei que tenho que saber andar pelas minhas próprias pernas, mas travei legal nessa.
segue meu código:

public class Venda {

void vender() throws ClassNotFoundException, IOException{

            // função para abrir arquivo serializado e colocar em uma array
	AbrirCaminho a = new AbrirCaminho();
	ArrayList<Object> menu = a.abrir();

	ArrayList<Object> a1 = new ArrayList<Object>();



	int i = 1,y = 3;

	while(i < (menu.size()-3)) {
		JLabel itemLabel = new JLabel((String) menu.get(i));
		JComboBox<Integer> menuCombo = new JComboBox<Integer>();
		menuCombo.getPreferredSize();


		// verifica o total de itens em estoque
		int x =0;
		while(x <= (int) menu.get(y)){
			menuCombo.addItem(x);
			x++;
		}
		a1.add(itemLabel);
		a1.add(menuCombo);
		i = i +5;
		y = y +5;
	}


	Object[] telaMenu = {
			a1.toArray(),
	};
	
        UIManager.put("OptionPane.yesButtonText", "Confirmar");  
        UIManager.put("OptionPane.noButtonText", "Cancelar");
        
	int confirmacao = JOptionPane.showConfirmDialog(null, telaMenu, "Compra", 0,JOptionPane.CLOSED_OPTION);
	// 0 confirmar 1 cancela
	System.out.println(confirmacao);



}

}

obrigado desde ja.

Qual IDE você esta utilizando, Netbeans, Eclipse ou outra?

Pelo visto usa Eclipse.
Você tem que usar o comando setBounds.
Exemplo:

itemLabel.setBounds(50,50,100, 20);

setBounds(int x, int y, int width, int height) o X e Y significa a posição do componente na tela e width e height são largura e altura do componente.

Se tiver usando realmente o Eclipse aconselho a baixar e instalar o plugin windowbuilder.

Vai te ajudar bastante.

Cara, obrigado. Mas onde eu coloco o setBounds?

Vou pesquisar sobre o windowbuilder. Aproveitando, eu estou utilizando o eclipse e não mexi no netbeans ainda. Muda muito?

Abraços.

Você pode colocar o setBounds depois de declarar o componente.

Quanto a diferença do Netbeans para o Eclipse.
O Netbeans já vem com uma função que você consegue arrastar componente para “tela” definir tamanho e a posição dele.
O Eclipse você precisa baixar esses plugins para conseguir arrastar componentes e definir tamanho mais facilmente.

1 curtida