Estou fazendo a tela principal do meu programa, está com o GroupLayout (dentro de um scrollPane), meu problema é que preciso que os botões e os Labels tenham uma mudança de posição equivalente ao que a tela muda de tamanho só que sem que o tamanho dos mesmos seja alterado, mas eu só estou conseguindo deixar eles em uma posição fixa, ou fazendo eles acompanharem a tela mas ficando com tamanhos alterados, é possível fazer do jeito que eu pretendo? se sim como faço?
Não adianta usar um único JPanel com GroupLayout.
Tens que criar composições com mais JPanels, cada um com o layout que melhor se adequa ao seu propósito.
Para eqvitar que um layout manager “estique” seus componentes, experimente setar o PreferedSize, são poucos layouts que não o respeitam.
já tentei ele continua esticando.
para ter uma ideia de como é a tela vou mandar o código, assim fica mais claro minha ideia.
import java.awt.*;
import javax.swing.*;
public class Estoque_Visualization extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public JFrame frmEstoque;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) { // Para mudar o Design da interface
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| javax.swing.UnsupportedLookAndFeelException ex) {
System.err.println(ex);
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Estoque_Visualization window = new Estoque_Visualization();
window.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Estoque_Visualization() {
setExtendedState(Frame.MAXIMIZED_BOTH);
setTitle("Estoque");
setBounds(100, 100, 450, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setMinimumSize(new Dimension(800, 600));
getContentPane().setMinimumSize(new Dimension(800, 600));
JMenuBar menuBar = new JMenuBar();
menuBar.setBounds(new Rectangle(0, 0, 10, 0));
JMenu mnSair = new JMenu("Sair");
mnSair.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
Estoque_Visualization.this.dispose();;
}
});
menuBar.add(mnSair);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
JPanel panel_1 = new JPanel();
panel_1.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(menuBar, GroupLayout.DEFAULT_SIZE, 784, Short.MAX_VALUE)
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap()
.addComponent(panel, GroupLayout.DEFAULT_SIZE, 584, Short.MAX_VALUE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(panel_1, GroupLayout.PREFERRED_SIZE, 170, GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(menuBar, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(panel, GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE)
.addComponent(panel_1, GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE))
.addContainerGap())
);
JScrollPane scrollPane = new JScrollPane();
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 580, Short.MAX_VALUE)
);
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addComponent(scrollPane, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 519, Short.MAX_VALUE)
);
JPanel panel_2 = new JPanel();
scrollPane.setViewportView(panel_2);
// 6865 7570
JButton btnP1 = new JButton("");
BOTAO_PALET(btnP1, 1);
JButton btnP2 = new JButton("");
BOTAO_PALET(btnP2, 2);
JButton btnP3 = new JButton("");
BOTAO_PALET(btnP3, 3);
JButton btnP4 = new JButton("");
BOTAO_PALET(btnP4, 4);
JButton btnP5 = new JButton("");
BOTAO_PALET(btnP5, 5);
JButton btnP6 = new JButton("");
BOTAO_PALET(btnP6, 6);
JButton btnP7 = new JButton("");
BOTAO_PALET(btnP7, 7);
JButton btnP8 = new JButton("");
BOTAO_PALET(btnP8, 8);
JButton btnP9 = new JButton("");
BOTAO_PALET(btnP9, 9);
JButton btnP10 = new JButton("");
BOTAO_PALET(btnP10, 10);
JButton btnP11 = new JButton("");
BOTAO_PALET(btnP11, 11);
JButton btnP12 = new JButton("");
BOTAO_PALET(btnP12, 12);
JButton btnP13 = new JButton("");
BOTAO_PALET(btnP13, 13);
JButton btnP14 = new JButton("");
BOTAO_PALET(btnP14, 14);
JButton btnP15 = new JButton("");
BOTAO_PALET(btnP15, 15);
JButton btnP16 = new JButton("");
BOTAO_PALET(btnP16, 16);
JButton btnP17 = new JButton("");
BOTAO_PALET(btnP17, 17);
JButton btnP18 = new JButton("");
BOTAO_PALET(btnP18, 18);
JButton btnF1 = new JButton("");
BOTAO_FREEZER(btnF1, 1);
JButton btnF2 = new JButton("");
BOTAO_FREEZER(btnF2, 2);
JButton btnF3 = new JButton("");
BOTAO_FREEZER(btnF3, 3);
JButton btnF4 = new JButton("");
BOTAO_FREEZER(btnF4, 4);
JLabel lblPalet1 = new JLabel("Palet 1");
txtlabel(lblPalet1);
JLabel lblPalet2 = new JLabel("Palet 2");
txtlabel(lblPalet2);
JLabel lblPalet3 = new JLabel("Palet 3");
txtlabel(lblPalet3);
JLabel lblPalet4 = new JLabel("Palet 4");
txtlabel(lblPalet4);
JLabel lblPalet5 = new JLabel("Palet 5");
txtlabel(lblPalet5);
JLabel lblPalet6 = new JLabel("Palet 6");
txtlabel(lblPalet6);
JLabel lblPalet7 = new JLabel("Palet 7");
txtlabel(lblPalet7);
JLabel lblPalet8 = new JLabel("Palet 8");
txtlabel(lblPalet8);
JLabel lblPalet9 = new JLabel("Palet 9");
txtlabel(lblPalet9);
JLabel lblPalet10 = new JLabel("Palet 10");
txtlabel(lblPalet10);
JLabel lblPalet11 = new JLabel("Palet 11");
txtlabel(lblPalet11);
JLabel lblPalet12 = new JLabel("Palet 12");
txtlabel(lblPalet12);
JLabel lblPalet13 = new JLabel("Palet 13");
txtlabel(lblPalet13);
JLabel lblPalet14 = new JLabel("Palet 14");
txtlabel(lblPalet14);
JLabel lblPalet15 = new JLabel("Palet 15");
txtlabel(lblPalet15);
JLabel lblPalet16 = new JLabel("Palet 16");
txtlabel(lblPalet16);
JLabel lblPalet17 = new JLabel("Palet 17");
txtlabel(lblPalet17);
JLabel lblPalet18 = new JLabel("Palet 18");
txtlabel(lblPalet18);
JLabel lblFreezer1 = new JLabel("Freezer 1");
txtlabel(lblFreezer1);
JLabel lblFreezer2 = new JLabel("Freezer 2");
txtlabel(lblFreezer2);
JLabel lblFreezer3 = new JLabel("Freezer 3");
txtlabel(lblFreezer3);
JLabel lblFreezer4 = new JLabel("Freezer 4");
txtlabel(lblFreezer4);
GroupLayout gl_panel_2 = new GroupLayout(panel_2);
gl_panel_2.setHorizontalGroup(
gl_panel_2.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(10)
.addComponent(btnP1, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP2, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP3, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP4, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP5, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP6, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(14)
.addComponent(btnP7, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(10)
.addComponent(lblPalet1, GroupLayout.DEFAULT_SIZE, 68, Short.MAX_VALUE)
.addGap(18)
.addComponent(lblPalet2, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet3, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet4, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet5, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet6, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(14)
.addComponent(lblPalet7, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(7))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(522)
.addComponent(btnP8, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(522)
.addComponent(lblPalet8, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(10)
.addComponent(btnP15, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP14, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP13, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP12, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP11, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(btnP10, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(14)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(btnP9, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addComponent(lblPalet9, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(10)
.addComponent(lblPalet15, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet14, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet13, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet12, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet11, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(lblPalet10, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addGap(14)
.addComponent(btnF4, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(522)
.addComponent(lblFreezer4, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(10)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblPalet16, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP16, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE))
.addGap(37)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblPalet17, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP17, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE))
.addGap(37)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblPalet18, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP18, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE))
.addGap(37)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblFreezer1, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE)
.addComponent(btnF1, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE))
.addGap(37)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblFreezer2, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE)
.addComponent(btnF2, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE))
.addGap(10)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(btnF3, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE)
.addComponent(lblFreezer3, GroupLayout.PREFERRED_SIZE, 75, GroupLayout.PREFERRED_SIZE)))
);
gl_panel_2.setVerticalGroup(
gl_panel_2.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(11)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(btnP1, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP2, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP3, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP4, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP5, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP6, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addComponent(btnP7, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGap(6)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblPalet1)
.addComponent(lblPalet2)
.addComponent(lblPalet3)
.addComponent(lblPalet4)
.addComponent(lblPalet5)
.addComponent(lblPalet6)
.addComponent(lblPalet7))
.addGap(5)
.addComponent(btnP8, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addGap(5)
.addComponent(lblPalet8, GroupLayout.PREFERRED_SIZE, 14, GroupLayout.PREFERRED_SIZE)
.addGap(11)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(25)
.addComponent(btnP15, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(25)
.addComponent(btnP14, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(25)
.addComponent(btnP13, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(25)
.addComponent(btnP12, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(25)
.addComponent(btnP11, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(25)
.addComponent(btnP10, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addComponent(btnP9, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
.addGap(5)
.addComponent(lblPalet9)))
.addGap(5)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addComponent(lblPalet15)
.addComponent(lblPalet14)
.addComponent(lblPalet13)
.addComponent(lblPalet12)
.addComponent(lblPalet11)
.addComponent(lblPalet10)
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(5)
.addComponent(btnF4, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE)))
.addGap(5)
.addComponent(lblFreezer4, GroupLayout.PREFERRED_SIZE, 14, GroupLayout.PREFERRED_SIZE)
.addGap(11)
.addGroup(gl_panel_2.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(15)
.addComponent(lblPalet16)
.addGap(16)
.addComponent(btnP16, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(15)
.addComponent(lblPalet17)
.addGap(16)
.addComponent(btnP17, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(15)
.addComponent(lblPalet18)
.addGap(16)
.addComponent(btnP18, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(15)
.addComponent(lblFreezer1)
.addGap(11)
.addComponent(btnF1, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addGap(15)
.addComponent(lblFreezer2)
.addGap(11)
.addComponent(btnF2, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_2.createSequentialGroup()
.addComponent(btnF3, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE)
.addGap(11)
.addComponent(lblFreezer3))))
);
panel_2.setLayout(gl_panel_2);
panel.setLayout(gl_panel);
panel_1.setLayout(null);
JButton btnVendas = new JButton("Vendas");
btnVendas.setBounds(10, 11, 150, 23);
panel_1.add(btnVendas);
JButton btnModificarEstoque = new JButton("Modificar Estoque");
btnModificarEstoque.setBounds(10, 45, 150, 23);
panel_1.add(btnModificarEstoque);
JButton btnChegadaDeProduto = new JButton("Chegada de Produto");
btnChegadaDeProduto.setBounds(10, 79, 150, 23);
panel_1.add(btnChegadaDeProduto);
JButton btnListarCervejas = new JButton("Listar Cervejas");
btnListarCervejas.setBounds(10, 113, 150, 23);
panel_1.add(btnListarCervejas);
JButton btnAlterarCervejas = new JButton("Alterar Cervejas");
btnAlterarCervejas.setBounds(10, 147, 150, 23);
panel_1.add(btnAlterarCervejas);
getContentPane().setLayout(groupLayout);
}
private JButton BOTAO_PALET(JButton button, int id) {
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Visualizar_Palet frame = new Visualizar_Palet(id);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Estoque_Visualization.this.dispose();
}
});
//button.setIcon(new ImageIcon(Estoque_Visualization.class.getResource("/Imagens/quadradoA2.png")));
button.setToolTipText("");
button.setFocusPainted(false);
button.setContentAreaFilled(false);
button.setBorderPainted(false);
return button;
}
private JButton BOTAO_FREEZER(JButton button, int id) {
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
//button.setIcon(new ImageIcon(Estoque_Visualization.class.getResource("/Imagens/circuloP2.png")));
button.setToolTipText("");
button.setFocusPainted(false);
button.setContentAreaFilled(false);
button.setBorderPainted(false);
return button;
}
private JLabel txtlabel(JLabel label) {
Dimension teste = new Dimension(68, 19);
label.setPreferredSize(teste);
label.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
label.setHorizontalAlignment(SwingConstants.CENTER);
return label;
}
}