JTextField在GridBagLayout中未对齐 [英] JTextField not aligning in GridBagLayout
本文介绍了JTextField在GridBagLayout中未对齐的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我刚刚开始使用GridBagLayout
,下面的图像非常清楚地说明了问题,我需要前4行中的第一个JTextField
一直延伸到JLabel
就像右边的一样.
I've just started working with GridBagLayout
, and the image below is pretty self-explanatory of the problem, I need the first JTextField
of the first 4 rows to stretch all the way to the JLabel
on the left, just like the right ones.
该组件从顶部到底部的网格宽度为:
The Component's grid widths, from top to bottom, are :
1、1、1、1
1、3
1、1、1、1
1、3
2,2
2,2
JFrame中GridBagConstraints
设置的代码:
Code of the GridBagConstraints
settings in the JFrame :
此外,为什么即使将anchor设置为"NORTH",所有组件仍都位于JPanel的中心对齐?
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(10, 10, 10, 10);
labelNome = new JLabel("Nome:");
gbc.gridx = 0;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.BOTH;
add(labelNome, gbc);
tfNome = new JTextField();
gbc.gridx = 1;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfNome, gbc);
labelIdade = new JLabel("Idade :");
gbc.ipadx = 0;
gbc.gridx = 2;
gbc.fill = GridBagConstraints.BOTH;
add(labelIdade, gbc);
tfIdade = new JTextField();
gbc.gridx = 3;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfIdade, gbc);
labelEndereco = new JLabel("Endereço :");
gbc.ipadx = 50;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.fill = GridBagConstraints.BOTH;
add(labelEndereco, gbc);
tfEndereco = new JTextField();
gbc.ipadx = 50;
gbc.gridx = 1;
gbc.gridwidth = 3;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfEndereco, gbc);
labelFiliacao = new JLabel("Filiação :");
gbc.gridwidth = 1;
gbc.gridx = 0;
gbc.gridy = 2;
gbc.fill = GridBagConstraints.BOTH;
add(labelFiliacao, gbc);
tfFiliacao = new JTextField();
gbc.gridx = 1;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfFiliacao, gbc);
labelTurma = new JLabel("Turma :");
gbc.ipadx = 0;
gbc.gridx = 2;
gbc.fill = GridBagConstraints.BOTH;
add(labelTurma, gbc);
tfTurma = new JTextField();
gbc.gridx = 3;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfTurma, gbc);
labelDisciplina = new JLabel("Disciplina :");
gbc.ipadx = 0;
gbc.gridx = 0;
gbc.gridy = 3;
gbc.fill = GridBagConstraints.BOTH;
add(labelDisciplina, gbc);
tfDisciplina = new JTextField();
gbc.gridwidth = 1;
gbc.ipadx = 50;
gbc.ipady = 0;
gbc.gridx = 1;
gbc.gridwidth = 3;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfDisciplina, gbc);
adicionaDisciplina = new JButton("Adicionar disciplina");
gbc.gridwidth = 2;
gbc.gridx = 0;
gbc.gridy = 4;
gbc.fill = GridBagConstraints.NONE;
add(adicionaDisciplina, gbc);
limparDisciplina = new JButton("Limpar lista de disciplinas");
gbc.gridx = 2;
add(limparDisciplina, gbc);
botaoSalvar = new JButton("Salvar");
gbc.gridx = 0;
gbc.gridy = 5;
add(botaoSalvar, gbc);
botaoCancelar = new JButton("Cancelar");
gbc.gridx = 2;
add(botaoCancelar, gbc);
推荐答案
import java.awt.*;
import javax.swing.*;
class example extends JFrame
{
public example()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
setSize(800,800);
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(10, 10, 10, 10);
JLabel labelNome = new JLabel("Nome:");
gbc.gridx = 0;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.BOTH;
add(labelNome, gbc);
JTextField tfNome = new JTextField();
gbc.gridx = 1;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfNome, gbc);
JLabel labelIdade = new JLabel("Idade :");
gbc.ipadx = 0;
gbc.gridx = 2;
gbc.fill = GridBagConstraints.BOTH;
add(labelIdade, gbc);
JTextField tfIdade = new JTextField();
gbc.gridx = 3;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfIdade, gbc);
JLabel labelEndereco = new JLabel("Endereço :");
gbc.ipadx = 50;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.fill = GridBagConstraints.BOTH;
add(labelEndereco, gbc);
JTextField tfEndereco = new JTextField();
gbc.ipadx = 50;
gbc.gridx = 1;
gbc.gridwidth = 3;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfEndereco, gbc);
JLabel labelFiliacao = new JLabel("Filiação :");
gbc.gridwidth = 1;
gbc.gridx = 0;
gbc.gridy = 2;
gbc.fill = GridBagConstraints.BOTH;
add(labelFiliacao, gbc);
JTextField tfFiliacao = new JTextField();
gbc.gridx = 1;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfFiliacao, gbc);
JLabel labelTurma = new JLabel("Turma :");
gbc.ipadx = 0;
gbc.gridx = 2;
gbc.fill = GridBagConstraints.BOTH;
add(labelTurma, gbc);
JTextField tfTurma = new JTextField();
gbc.gridx = 3;
gbc.ipadx = 50;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfTurma, gbc);
JLabel labelDisciplina = new JLabel("Disciplina :");
gbc.ipadx = 0;
gbc.gridx = 0;
gbc.gridy = 3;
gbc.fill = GridBagConstraints.BOTH;
add(labelDisciplina, gbc);
JTextField tfDisciplina = new JTextField();
gbc.gridwidth = 1;
gbc.ipadx = 50;
gbc.ipady = 0;
gbc.gridx = 1;
gbc.gridwidth = 3;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(tfDisciplina, gbc);
JButton adicionaDisciplina = new JButton("Adicionar disciplina");
gbc.gridwidth = 2;
gbc.gridx = 0;
gbc.gridy = 4;
gbc.fill = GridBagConstraints.NONE;
add(adicionaDisciplina, gbc);
JButton limparDisciplina = new JButton("Limpar lista de disciplinas");
gbc.gridx = 2;
add(limparDisciplina, gbc);
JButton botaoSalvar = new JButton("Salvar");
gbc.gridx = 0;
gbc.gridy = 5;
add(botaoSalvar, gbc);
JButton botaoCancelar = new JButton("Cancelar");
gbc.gridx = 2;
add(botaoCancelar, gbc);
setVisible(true);
}
public static void main(String aaa[]){new example();}
}
使用此代码
这篇关于JTextField在GridBagLayout中未对齐的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文