Pessoal,
Esse é o segundo tópico que crio com o intuito de resolver minha dúvida.
Na última semana eu tinha que desenvolver uma aplicação em Swing, então decidi fazer no netbeans, que segundo algumas fontes era mais produtivo e era bom de ser utilizado para problemas pequenos (gera código autómatico).
Terminei a aplicação, porem me interessei em entender o processo atraz das cortinas, então abri o eclipse, instalei o Windows Builder e fui fazer tudo na mão.
Segue meu código abaixo:
package br.com.lidd.mvc.swing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.SystemColor;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.EmptyBorder;
public class JFrameCadastroEntrada extends JFrame{
private JPanel painelContainer = null;
private JPanel painelTopo = null;
private JPanel painelCentro = null;
private JPanel painelRodape = null;
private JLabel tituloTopoLabel = null;
private JLabel questaoUmLabel = null;
private JLabel textoTeste = null;
private JRadioButton entradaRadioButton = null;
private JRadioButton saidaRadioButton = null;
private ButtonGroup questaoUmButtonGroup = null;
// Monta o painel Principal da aplicação para armazenar os outros
public JPanel getPainelContainer(){
if(painelContainer == null)
{
painelContainer = new JPanel();
painelContainer.setBackground(SystemColor.activeCaptionBorder);
painelContainer.setBorder(new EmptyBorder(5, 5, 5, 5));
painelContainer.setLayout(new BorderLayout(0, 0));
painelContainer.add(getPainelTopo(), BorderLayout.NORTH);
painelContainer.add(getPainelCentro(), BorderLayout.CENTER);
painelContainer.add(getPainelRodape(), BorderLayout.SOUTH);
painelTopo.add(getTituloTopoLabel());
painelCentro.add(getQuestaoUmLabel());
painelCentro.add(getEntradaRadioButton());
painelCentro.add(getSaidaRadioButton());
painelCentro.add(getTextoTeste());
questaoUmButtonGroup = getQuestaoUmButtonGroup();
}
return painelContainer;
}
// Monta o painel do Topo da aplicação
public JPanel getPainelTopo() {
painelTopo = new JPanel(new FlowLayout(FlowLayout.CENTER));
painelTopo.setBorder(BorderFactory.createLineBorder(Color.black));
painelTopo.setBackground(SystemColor.activeCaptionBorder);
return painelTopo;
}
// Monta o painel Central da aplicação
public JPanel getPainelCentro() {
painelCentro = new JPanel(new FlowLayout(FlowLayout.LEFT));
painelCentro.setBorder(BorderFactory.createLineBorder(Color.black));
painelCentro.setBackground(SystemColor.activeCaptionBorder);
return painelCentro;
}
// Monta o painel Rodape da aplicação
public JPanel getPainelRodape() {
painelRodape = new JPanel(new FlowLayout(FlowLayout.LEFT));
painelRodape.setBorder(BorderFactory.createLineBorder(Color.black));
painelRodape.setBackground(SystemColor.activeCaptionBorder);
return painelRodape;
}
// Label do titulo do topo da aplicação
public JLabel getTituloTopoLabel() {
tituloTopoLabel = new JLabel("Controle de Entrada");
tituloTopoLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
return tituloTopoLabel;
}
// Label da primeira questão da aplicação
public JLabel getQuestaoUmLabel() {
questaoUmLabel = new JLabel("A pessoa esta:");
questaoUmLabel.setFont(new Font("Tahoma", Font.PLAIN, 14));
return questaoUmLabel;
}
// Label desalinhado
public JLabel getTextoTeste(){
textoTeste = new JLabel("Label desalinhado:");
textoTeste.setFont(new Font("Tahoma", Font.PLAIN, 14));
return textoTeste;
}
// Monta radiogroup primeira questão
public ButtonGroup getQuestaoUmButtonGroup() {
questaoUmButtonGroup = new ButtonGroup();
questaoUmButtonGroup.add(entradaRadioButton);
questaoUmButtonGroup.add(saidaRadioButton);
return questaoUmButtonGroup;
}
// Monta radiobutton de entrada da primeira questão
public JRadioButton getEntradaRadioButton() {
entradaRadioButton = new JRadioButton("Entrada");
entradaRadioButton.setBackground(SystemColor.activeCaptionBorder);
return entradaRadioButton;
}
// Monta radiobutton de saida da primeira questão
public JRadioButton getSaidaRadioButton() {
saidaRadioButton = new JRadioButton("Saida");
saidaRadioButton.setBackground(SystemColor.activeCaptionBorder);
return saidaRadioButton;
}
/**
* Inicializa aplicação.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JFrameCadastroEntrada frame = new JFrameCadastroEntrada();
frame.setTitle("Programa Portaria");
frame.setVisible(true);
frame.setBackground(SystemColor.activeCaptionBorder);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 438, 335);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Cria frame.
*/
public JFrameCadastroEntrada() {
super();
initialize();
}
public void initialize(){
this.setSize(600,400);
this.setContentPane(getPainelContainer());
}
}
Segue em anexo a saida do código.
Então, dai surgiu minha pedra no caminho, não consigo alinhas minhas labels(quebra de linha), como vocês podem ver no printscreen.
Preciso de ajuda para alinhar alinhar os elementos de tela no JPanel.
Grato