Pergunta

No meu aplicativo Java Eu estou tentando criar uma forma muito simples com um rótulo e um conjunto de controles em cada linha do formulário. Imagine algo como este diagrama ASCII bruto:

   Result 1: (*) pass  ( ) fail
   Result 2: ( ) pass  (*) fail
Error Count: [10______]
Explanation: [Operator overload___]

Irritantemente os JRadioButtons não se alinham com o resto dos controles como eles têm uma grande quantidade de preenchimento todo, empurrando-os para a direita um par de pixels e adicionar um monte de espaço entre as linhas. Eu acabar com algo parecido com isto:

   Result 1:   (*) pass  ( ) fail

   Result 2:   ( ) pass  (*) fail

Error Count: [10______]
Explanation: [Operator overload___]

Como posso obter os botões de rádio para parar de ter tanto espaço vazio para que eles possam se alinham bem com tudo o resto? Se é importante isso é usando o GTK L & F; Eu não tentei executar o programa no Windows.

Foi útil?

Solução

Parece que existem dois culpados:

  1. O mini-JPanel contendo os dois botões de rádio tem um FlowLayout cujo padrão é a adição de 5 pixels de preenchimento em torno de cada componente.

  2. Fazendo radioButton.setBorder(null) elimina o valor do outro pixel de espaço ao redor dos botões. Ele também estraga a linha pontilhada desenhado em torno deles quando eles têm foco, apesar de tudo.

Outras dicas

Use um GridBagLayout, e certifique-se de células âncora (cada etiqueta e caixa teria seu próprio celular) para a esquerda ou para com o direito, conforme necessário. Os rótulos seria justificado direita, as caixas de seleção seria justificado à esquerda.

Uma vez que a personalização GridBagLayouts à mão é um aborrecimento, eu recomendo usar o NetBeans GUI Builder e ajustá-los usando sua gráfica "personaliza" ferramenta.

Outra solução pode ser a margem de mudança (método setMargin das radionbuttons). Isso deve fazer o trabalho. A única desvantagem é que as margens / inserções será diferente para diferentes LAFS.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top