Pessoal,
Eu montei minha primeira aplicação usando Swing com vários JFrames e implantes, mas logo depois procurei mais informações e o pessoal dizia que o ideal era usar um JFrame e ir trabalhando com JPanels…
Tudo bem, fiz uma versão 2 do projeto usando JPanel, mas não consigo alinhar os JLabels e JFields etc…
Eu so que quebrar a linha de uma questão do form par aoutra e não consigo.
Segue código fonte abaixo:
package br.com.lidd.mvc.swing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
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;
import java.awt.SystemColor;
import java.awt.Font;
import javax.swing.SwingConstants;
public class JFrameCadastroEntrada extends JFrame {
private JPanel painelCentral;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JFrameCadastroEntrada frame = new JFrameCadastroEntrada();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JFrameCadastroEntrada() {
setBackground(SystemColor.activeCaptionBorder);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 438, 335);
// Monta o painel Principal da aplicação para armazenar os outros paineis
painelCentral = new JPanel();
painelCentral.setBackground(SystemColor.activeCaptionBorder);
painelCentral.setBorder(new EmptyBorder(5, 5, 5, 5));
painelCentral.setLayout(new BorderLayout(0, 0));
painelCentral.setAlignmentX(FlowLayout.LEFT);
setContentPane(painelCentral);
// Monta o painel do Topo da aplicação
JPanel painelTopo = new JPanel(new FlowLayout(FlowLayout.CENTER));
painelTopo.setBorder(BorderFactory.createLineBorder(Color.black));
painelTopo.setBackground(SystemColor.activeCaptionBorder);
painelCentral.add(painelTopo, BorderLayout.NORTH);
// Monta o painel Central da aplicação
JPanel painelCentro = new JPanel(new FlowLayout(FlowLayout.LEFT));
painelCentro.setBorder(BorderFactory.createLineBorder(Color.black));
painelCentro.setBackground(SystemColor.activeCaptionBorder);
painelCentral.add(painelCentro, BorderLayout.CENTER);
// Monta o painel Rodape da aplicação
JPanel painelRodape = new JPanel(new FlowLayout(FlowLayout.LEFT));
painelRodape.setBorder(BorderFactory.createLineBorder(Color.black));
painelRodape.setBackground(SystemColor.activeCaptionBorder);
painelCentral.add(painelRodape, BorderLayout.SOUTH);
// Label do titulo do topo da aplicação
JLabel tituloTopoLabel = new JLabel("Controle de Entrada");
tituloTopoLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
painelTopo.add(tituloTopoLabel);
// Label da primeira questão da aplicação
JLabel questaoUmLabel = new JLabel("A pessoa esta:");
questaoUmLabel.setFont(new Font("Tahoma", Font.PLAIN, 14));
painelCentro.add(questaoUmLabel);
// Monta radiogroup primeira questão
ButtonGroup questaoUmButtonGroup = new ButtonGroup();
// Monta RadioButton de entrada da primeira questão
JRadioButton entradaRadioButton = new JRadioButton("Entrada");
entradaRadioButton.setBackground(SystemColor.activeCaptionBorder);
questaoUmButtonGroup.add(entradaRadioButton);
// Monta RadioButton de saida da primeira questão
JRadioButton saidaRadioButton = new JRadioButton("Saida");
saidaRadioButton.setBackground(SystemColor.activeCaptionBorder);
questaoUmButtonGroup.add(saidaRadioButton);
// Adicona RadioButtons ao painel central
painelCentro.add(entradaRadioButton);
painelCentro.add(saidaRadioButton);
// Label da primeira questão da aplicação
JLabel questaoDoisLabel = new JLabel("A pessoa é um:");
questaoDoisLabel.setVerticalAlignment(SwingConstants.BOTTOM);
questaoDoisLabel.setFont(new Font("Tahoma", Font.PLAIN, 14));
painelCentro.add(questaoDoisLabel);
}
}
Quero quebrar a linha depois dos RadioButtons…
obrigado