Вы можете использовать GridBagLayout для этого.Вот пример, показывающий две кнопки: одна сохраняет свою ширину, а другая изменяет свою ширину при изменении размера рамки.
Обратите внимание на GridBagConstraints, которые сообщают компоненту, как он должен вести себя в макете.Вес контролирует поведение при изменении размера.Дополнительную информацию можно найти в Java Tutorials .
package test;
import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
public class LayoutResizeButtonTest extends JFrame {
public static void main(String[] args) {
LayoutResizeButtonTest app = new LayoutResizeButtonTest();
app.setDefaultCloseOperation(EXIT_ON_CLOSE);
app.setVisible(true);
}
LayoutResizeButtonTest() {
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0;
this.add(new Button("Resizable"), c);
c = new GridBagConstraints();
c.weightx = 0.0;
this.add(new Button("Not Resizable"));
this.pack();
}
}