Como diminuo o tamanho dos componentes Swing?

eu fiz uma tela com uma área de texto, um slider e dois botões, mas gostaria que os botões e o slider ficassem a menor altura possível…

alguem sabe como faz?

olha o código:

[code]import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JSlider;
import javax.swing.JTextArea;

/**
*

  • @author Ton
    */
    public class NewJApplet2 extends JApplet {

    private JTextArea pick;
    private JSlider passoSlider;
    private JButton btnApaga;
    private JButton btnReset;

    @Override
    public void init() {
    pick = new JTextArea();
    btnApaga = new JButton(“Apaga”);
    btnReset = new JButton(“Reset”);
    passoSlider = new JSlider(5, 50, 10);
    passoSlider.setBorder(BorderFactory.createTitledBorder(“Distância entre pontos”));
    passoSlider.setSize(10, 10);

     Container c=getContentPane();
     GridBagConstraints cons = new GridBagConstraints();
     GridBagLayout layout = new GridBagLayout();
     c.setLayout(layout);
    
     cons.gridx = 0;
     cons.gridy = 0;
     cons.gridwidth = 3;
     cons.weightx = 1;
     cons.weighty = 0.99;
     cons.fill = GridBagConstraints.BOTH;
     c.add(pick, cons);
    
     cons.gridx = 0;
     cons.gridy = 1;
     cons.gridwidth = 1;
     cons.weighty = 0.01;
     cons.weightx = 0.70;
     cons.fill = GridBagConstraints.NONE;
     c.add(passoSlider, cons);
    
     cons.gridx = 1;
     cons.gridy = 1;
     cons.weightx = 0.15;
     c.add(btnApaga, cons);
    
     cons.gridx = 2;
     cons.gridy = 1;
     c.add(btnReset, cons);
    

    }
    }
    [/code]

não sei se com o GridBagLayout vc conseguirá fazer isso, porque ele ajusta os componentes na tela da melhor maneira possível e ele te deixa sem esse controle.

Com o AbsoluteLayout vc consegue fazer isso: org.netbeans.lib.awtextra.AbsoluteLayout;

O problema do AbsoluteLayout é que, assim como o NullLayout, ele não é multiplataforma, nem auto-ajusta quando a tela maximiza.

Algumas dicas com GridLayout:

  1. Ajuste o weight apenas dos componentes que irão se esticar. Geralmente, o único valor que você precisará definir nesse campo é 1 (quando ele for esticar junto com a tela) ou 0 (quando ele se mantém do mesmo tamanho, mesmo que a tela mude). O valor 1 é comum em paineis e textfields.
  2. Para os demais componentes, use a propriedade preferredSize do próprio componente.
  3. Ajuste corretamente o padding, para espaçar os componentes.
  4. Pode ser interessante adicionar um painel embaixo ou na lateral, com o único objetivo de se esticar;