Gridbaglayout preenchimento
-
22-09-2019 - |
Pergunta
Estou usando um GridBagLayout
para (atualmente) exibir duas linhas. Estou ciente de que esse layout é exagerado para esta tarefa, mas estou tentando aprender a usá -lo. O problema é que eu adicionei os dois painéis às duas linhas separadas e há uma enorme lacuna em torno do conteúdo (consulte a imagem e o código abaixo):TEXTO DE ALT HTTP://www.imagechicken.com/uploads/1264533379009864500.png
Image background;
public Table(){
super();
ImageIcon ii = new ImageIcon(this.getClass().getResource("pokerTableV2.png"));
background = ii.getImage();
setSize(Constants.FRAME_WIDTH, Constants.TABLE_HEIGHT);
setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
constraints.fill = GridBagConstraints.HORIZONTAL;
JButton button = new JButton("hello world");
JPanel panel1 = new JPanel();
panel1.setPreferredSize(new Dimension(800,100));
panel1.add(button, BorderLayout.CENTER);
panel1.setBackground(Color.yellow);
add(panel1, constraints);
constraints.gridx = 0;
constraints.gridy = 1;
JPanel middlePanel = new JPanel();
middlePanel.setPreferredSize(new Dimension(800,350));
middlePanel.add(button, BorderLayout.CENTER);
middlePanel.setBackground(Color.blue);
add(middlePanel, constraints);
}
Solução
Adicione uma referência ao System.Web (Referências -> RightClick -> AddReference -> .NET -> System.Web)
Agora adicione um usando (ou importações se estiver usando VB) para System.Web.Security
Você pode precisar alterar o perfil para o .NET (em vez do perfil do cliente .NET)
Outras dicas
Usar
constraints.fill = GridBagConstraints.BOTH;
constraints.weightx = 1d;
constraints.weighty = 1d;
Javadoc por weightx
/weighty
diz:
Especifica como distribuir espaço horizontal/vertical extra.
Javadoc por fill
:
Este campo é usado quando a área de exibição do componente é maior que o tamanho solicitado do componente. Determina se deve redimensionar o componente e, em caso afirmativo, como.