Tamanho de um JDialog (Resolvido)

4 respostas
brunobegnami

Salve galera,

Seguinte, estou com um pequeno problema com o JDialog.

Estou tentando deixar ele com um tamanho fixo, mas não consigo, todos meus JDialog da minha aplicação estão assim:

E está espremendo meu JTable, hehehehehe. Por um acaso não tem tipo um setSize para JDialog?

Valeu.

4 Respostas

leonardom

Já tentou o metodo setPreferredSize(Dimension d) ?

kinow

Eaeeeeeeeeee... SEXTA! FIM DO EXPEDIENTE! Tava a fim de fazer um código mais bonito hehehehe.. mas aposto que você vai entender... o importante também, é que vc defina o tamanho de cada campo de tabela... com um table.getColumnModel().getColumn( 1 -> indice ).setMinWidth( 101)... e assim vai =].. ó o que fiz... abraçoooooooooooooooooooos....

/*
 * Autor: Bruno de Paula Kinoshita
 * Data: 30/06/2005 - SEXTA FEIRAAAAAAAAAA
 */
package br.com.guj.forums;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class Frame3 extends JFrame implements ActionListener
{

    /*
     * Para acesso ... que coisa porca
     */
    protected JPanel jPanel = new JPanel(null);
    protected JButton button = new JButton("Go Dialog!!");
    protected JDialog dialog = new JDialog(this, "Titulo", false);
    
    /*
     * É uma classe que estende JFrame e implementa um ActionListener para um
     * JButton com um ActionCommand que lança o nosso dialog com a tabela
     */
    public Frame3() throws HeadlessException
    {
        /*
         * Preferencias para a nossa JFrame
         */
        super ( );
        this.setDefaultCloseOperation(3);
        this.setPreferredSize(new Dimension(640,480));
        
        /*
         * Construção do nosso dialogo =]
         */
        
        Container container2 = dialog.getContentPane();
        
        /*
         * Tabela simples
         */
        String[][] data = {{"Bruno", "R Joaquim", "Japa", "Masculino", "NA"},
                {"Lula", "Palacio", "Brasileiro", "Masculino", "NA"},
                {"Maria", "R Anhanq", "India", "Feminina", "Catolica"}
        };
        String[] colunas = {"Nome", "Endereco", "Raca", "Sexo", "Religiao"};
        JTable table = new JTable(data, colunas);
        table.setPreferredScrollableViewportSize(new Dimension(640,100));
        JScrollPane scrollPane = new JScrollPane();
        container2.add(scrollPane);
        scrollPane.getViewport().add(table, null);
        /*
         * Configuramos nosso panel e adcionamos os componentes
         */
        jPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
        button.setActionCommand("pulaDialogo");
        button.addActionListener(this);
        jPanel.add(button);
        
        /*
         * Por fim incluimos tudo no frame, lembrando que o próximo passo do construtor
         * é fazer um pack() e depois se mostrar visível
         */
        Container container = this.getContentPane();
        container.add(jPanel);
    }

    /*
     * Main Method =]
     */
    public static void main(String[] args)
    {
        Frame3 fs = new Frame3();
        fs.pack();
        fs.setVisible(true);
    }

    /*
     * Interpreta o evento de ação ;-) no caso o que vem do JButton, eu espero
     */
    public void actionPerformed(ActionEvent e)
    {
        if(e.getActionCommand().equals("pulaDialogo"))
        {
            System.out.println ( e.toString());
            dialog.pack();
            dialog.setVisible(true);
        }
    }

}

Espero ter ajudado um pouco, abraços! Ótimo fds!

brunobegnami

Nossa galera, exatamente o q eu estava precisando, funcionou certinho, agora ficou xique, hehehehehe.

Valeu galera.

carlosatila

aê Kinow. blza brother?
Cara o código, resolveu o meu problema , tive só um trabalhinho para melhorar algumas coisinhas , mas como forma de agradecimento , taí o código com algumas modificações… mas tá muito bom…

/*
 * ListarLotes.java
 *
 * autor Carlos Átila
 */

package Atila;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author  Carlos Átila
 */
public class ListarLotes extends javax.swing.JFrame {
    public javax.swing.table.DefaultTableModel model;
    /** Creates new form ListarLotes */
    public ListarLotes() {
        initComponents();
       
              
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();

        getContentPane().setLayout(null);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Lista de Lotes Pendentes de Digitaliza\u00e7\u00e3o");
        setResizable(false);
        jButton1.setIcon(new javax.swing.ImageIcon("D:\\Projetos NetBeans\\IPECE\\src\\Atila\\forward.gif"));
        jButton1.setToolTipText("Continuar com a Digitaliza\u00e7\u00e3o");
        getContentPane().add(jButton1);
        jButton1.setBounds(10, 10, 30, 30);

        jButton2.setIcon(new javax.swing.ImageIcon("D:\\Projetos NetBeans\\IPECE\\src\\Atila\\icone_fechar.gif"));
        jButton2.setToolTipText("Fechar Janela");
        getContentPane().add(jButton2);
        jButton2.setBounds(50, 10, 30, 30);

        jScrollPane1.setPreferredSize(new java.awt.Dimension(4, 5));
        javax.swing.table.DefaultTableModel model = new DefaultTableModel();
        javax.swing.JTable table = new JTable(model);
        model.addColumn("Número dos Lotes");
        model.insertRow(0, new Object[]{"123456"});
        model.insertRow(1, new Object[]{"12578459"});
        table.setPreferredScrollableViewportSize(new Dimension(640,100));
        jScrollPane1.getViewport().add(table, null);

        getContentPane().add(jScrollPane1);
        jScrollPane1.setBounds(0, 50, 340, 80);

        jMenuBar1.setFont(new java.awt.Font("Arial", 1, 12));
        jMenu1.setText("Arquivo");
        jMenu1.setFont(new java.awt.Font("Arial", 1, 12));
        jMenuItem1.setText("Digitalizar");
        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Fechar");
        jMenu2.setFont(new java.awt.Font("Arial", 1, 12));
        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-351)/2, (screenSize.height-256)/2, 351, 256);
    }
    // </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ListarLotes().setVisible(true);
                
            }
        });
    }
    
    private void preencheLinhas(){
        String txt = "teste";
        model.insertRow(0, new Object[]{txt});
        System.out.println("Chamou o metódo preenche linhas");
    }
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration
}

Falou!!!
8)

Criado 1 de julho de 2005
Ultima resposta 4 de ago. de 2005
Respostas 4
Participantes 4