JDialog aparece pequeno no canto da tela [RESOLVIDO]

4 respostas
moacirjava

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?


4 Respostas

F

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
tRuNkSnEt

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.

moacirjava

Então, mas eu vou chamar esse métodos onde?

Esse é o código do meu JFrame:
import java.awt.Dimension;
import java.awt.Toolkit;

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);
                 
}                                               

    

    // Variables declaration - do not modify
    private javax.swing.JMenuItem iControleDizimo;
    private javax.swing.JDialog jDcadDizimo;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTabbedPane jTabbedPane2;
    private javax.swing.JTabbedPane jTabbedPane3;
    private javax.swing.JTabbedPane jTabbedPane4;
    // End of variables declaration

}
moacirjava

Bom o jeito que encontrei foi o seguinte...

Esse é o evento do menu que aciona o jdialog, dentro dele eu chamo um método que configura com o jdialog.

private void iControleDizimoActionPerformed(java.awt.event.ActionEvent evt) {                                                

        //Posiciona o JDialog quase no centro da tela.        
       cria(jDcadDizimo);
                 
}                                              

    private void cria(JDialog j){
       j.setModal(true);
       j.setBounds(50, 50, ((int) width - 100), ((int) height - 100));
       j.setVisible(true);

       j.pack();
    }
Criado 27 de janeiro de 2009
Ultima resposta 27 de jan. de 2009
Respostas 4
Participantes 3