Galera, criei um JFrame no netbeans e adicionei um JDialog. Quero fazer com que o JDialog impeça de o usuário clicar no frame atrás do JDialog.
Pra isso tem um método o modal, só que quando configuro esse método na palheta do netbeans o JDialog já aparece pequeno no canto da tela, como eu faço pra ele aparecer no centro da tela e com tamanho descente?
Na mesma janela vc pode setar o tamnho e a localização do jDialog na sua tela…na configuração de "Bounds"
que recebe 4 parâmetros, a localkização “x” ,“y”, “largura”, “altura” ou vc pode escrever a linha de código:
jDialog.setBounds(15,15,55,100); //parâmetros ficam a seu critério
Você também pode usar o metodo setSize(int width, int height) para configurar o tamanho da tela ou o metodo pack() que ajusta a tela de acordo com seus componentes.
public class TelaPrincipal extends javax.swing.JFrame {
private double width = 0;
private double height = 0;
private Dimension dimensao = Toolkit.getDefaultToolkit().getScreenSize();
public TelaPrincipal() {
initComponents();
width = dimensao.getWidth();
height = dimensao.getHeight() - 32;
setBounds(0, 0, (int) width, (int) height);
}
//DAQUI PRA BAIXO É O NETBEANS QUEM GERA
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jDcadDizimo = new javax.swing.JDialog();
jTabbedPane1 = new javax.swing.JTabbedPane();
jTabbedPane2 = new javax.swing.JTabbedPane();
jTabbedPane3 = new javax.swing.JTabbedPane();
jTabbedPane4 = new javax.swing.JTabbedPane();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
iControleDizimo = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenu3 = new javax.swing.JMenu();
jDcadDizimo.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jDcadDizimo.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
jDcadDizimo.setResizable(false);
jDcadDizimo.getContentPane().setLayout(new java.awt.GridLayout(1, 0));
jTabbedPane1.setToolTipText("Dizimo");
jTabbedPane1.addTab("Dízimo", jTabbedPane2);
jTabbedPane1.addTab("Batistérios", jTabbedPane3);
jTabbedPane1.addTab("Casamentos", jTabbedPane4);
jDcadDizimo.getContentPane().add(jTabbedPane1);
jDcadDizimo.getAccessibleContext().setAccessibleParent(this);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
getContentPane().setLayout(new java.awt.GridBagLayout());
jMenu1.setText("Dízimo");
iControleDizimo.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
iControleDizimo.setText("Controle do Dízimo");
iControleDizimo.setToolTipText("Abre controle do Dízimo");
iControleDizimo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
iControleDizimoActionPerformed(evt);
}
});
jMenu1.add(iControleDizimo);
jMenuBar1.add(jMenu1);
jMenu2.setText("Batistérios");
jMenuBar1.add(jMenu2);
jMenu3.setText("Casamentos");
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
pack();
}// </editor-fold>
private void iControleDizimoActionPerformed(java.awt.event.ActionEvent evt) {
//ATÉ AQUI
//Posiciona o JDialog quase no centro da tela.
jDcadDizimo.setBounds(50, 50, ((int) width - 100), ((int) height - 100));
jDcadDizimo.setVisible(true);
jDcadDizimo.setModal(true);