Centralizar janelas na tela

Java

09/04/2009

Ponham naquela classe que tem tudo quanto eh tipo de código de ajuda...hehe
public static void center(Component componente)
  {
      // Centraliza a janela de abertura no centro do desktop.
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle r      = componente.getBounds();
      // Dimensões da janela
        int widthSplash = r.width ;
        int heightSplash = r.height;

      // calculo para encontrar as cooredenadas X e Y para a centralização da janela.
        int posX = (screen.width / 2) - ( widthSplash / 2 );
        int posY = (screen.height / 2) - ( heightSplash / 2 );

        componente.setBounds(posX,posY,widthSplash,heightSplash);
  }
Raphael Costa

Raphael Costa

Curtidas 0

Respostas

09/04/2009

Como posso fazer para que um JInternalFrame fique centralizado em um JDesktopPane. Abraço!!!
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Pessoal, Naum precisa complicar ja ouviram falar de setLocationRelativeTo ??? Passe como parametro o frame que vc quer centralizar... se vc passar null como parametro ele centraliza no desktop...
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

comecei programar em Java no dia 26 de Julho de de 2004. Tive um monte de Dúvidas, mas entrando neste site estou resolvendo todas. Essa de centralizar era uma. Valeu pela diga ai deivison. abraço a todos.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

o "setLocationRelativeTo" funcionou perfeitamente. Obrigado pela dica!
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

no Jframe funciona. Mas en JInternalFrame ??? crie o metodo: public void centralizar(JDesktopPane dp) { Dimension ds = dp.getSize(); Dimension dw = this.getSize(); this.setLocation((ds.width - dw.width) / 2, (ds.height - w.height) / 2); } e passe como parametro o JDesktoPane. supondo que (this) seja um JInternalFrame não sei se fui claro. Mas é isso Tony Amorim
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Como faço para deixar o JFrame centralizado e fixo no meio da tela, sem que o usuário possa arrasta-lo? :shock:
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Que lugar da classe que eu devo colocar esse bloco de código? Eu coloquei logo no inicio da classe mas não mudou nada. A janela sempre aparece alinahda na esquerda da tela.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]Que lugar da classe que eu devo colocar esse bloco de código? Eu coloquei logo no inicio da classe mas não mudou nada. A janela sempre aparece alinahda na esquerda da tela.
usa esse componente
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class JForm extends JFrame {
private static final long serialVersionUID = 1L;
public static final int CENTER_SCREEN = 0;
public static final int FULL_SCREEN = 1;
private int sHeight;
private int sWidth;
private JPanel jp;

public void setIconImage(String fileName){
	ImageIcon ico = new ImageIcon(fileName);
	this.setIconImage(ico.getImage());
}
public void setScreen(int screenType){
	Toolkit tk = Toolkit.getDefaultToolkit(); 
	Dimension scrSize = tk.getScreenSize();
	switch(screenType){
		case 0:
			this.setSize(this.sWidth,this.sHeight);
			int scrWidth = scrSize.width - this.getWidth(); 
			int scrHeight = scrSize.height - this.getHeight();
			this.setLocation(scrWidth/2,scrHeight/2);
			break;
		case 1:
			this.setLocation(0,0);
			this.setSize(scrSize.width, scrSize.height);
			break;
	}
}

public void Show(){
	this.setVisible(true);
}

public void Close(){
	System.exit(0);
}

public JForm(String title,int Height,int Width){
    try {  
   	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
   	this.sHeight = Height;
   	this.sWidth = Width;
   	jp = new JPanel(null);
   	this.setContentPane(jp);
   	this.setTitle(title);
	this.setSize(this.sWidth, this.sHeight);
	this.setDefaultCloseOperation(3);
    } catch (IllegalAccessException e) {} catch (ClassNotFoundException e) {  
    } catch (InstantiationException e) {} catch (UnsupportedLookAndFeelException e) {}
}

}
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

A partir do Java 1.4, não é necssário computar explicitamente as dimensões da tela e da janela para poder centralizá-la. Basta invocar o método [b]setLocationRelativeTo[/b]. Esse método recebe como parametro um componente, que será tomado como base para centralizar sua janela. Se o parâmetro for null, então a janela será centralizada em relação ao próprio dispositivo gráfico (monitor)
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="staroski"]A partir do Java 1.4, não é necssário computar explicitamente as dimensões da tela e da janela para poder centralizá-la. Basta invocar o método [b]setLocationRelativeTo[/b]. Esse método recebe como parametro um componente, que será tomado como base para centralizar sua janela. Se o parâmetro for null, então a janela será centralizada em relação ao próprio dispositivo gráfico (monitor)
Mas que lugar da classe que eu uso isso? É fora do construtor da classe mesmo? Eu tentei assim e não muda nada também: this.setLocationRelativeTo(null);
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"][quote="staroski"]A partir do Java 1.4, não é necssário computar explicitamente as dimensões da tela e da janela para poder centralizá-la. Basta invocar o método [b]setLocationRelativeTo[/b]. Esse método recebe como parametro um componente, que será tomado como base para centralizar sua janela. Se o parâmetro for null, então a janela será centralizada em relação ao próprio dispositivo gráfico (monitor)
Mas que lugar da classe que eu uso isso? É fora do construtor da classe mesmo? Eu tentei assim e não muda nada também: this.setLocationRelativeTo(null);
Não existe um lugar fixo na classe, depende de como voce escreveu a classe! O setLocationRelativeTo normalmente tem que vir depois da janela ter o tamanho definido e melhor antes que a janela esteja visível. []
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

simu ou quem souber, eu coloquei aqui e nada:
public CadastroCliente() {
		super();
		initialize();
		this.setLocationRelativeTo(null);

		 
		    		
	}
E aqui também depois do setSize e nada:
private void initialize() {
		this.setSize(554, 474);
		this.setLocationRelativeTo(null);
		this.setContentPane(getJContentPane());
		this.setTitle("Cadastro de Clientes");
		 
	
		
	}
Continua sempre igual.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]simu ou quem souber, eu coloquei aqui e nada:
public CadastroCliente() {
		super();
		initialize();
		this.setLocationRelativeTo(null);

		 
		    		
	}
E aqui também depois do setSize e nada:
private void initialize() {
		this.setSize(554, 474);
		this.setLocationRelativeTo(null);
		this.setContentPane(getJContentPane());
		this.setTitle("Cadastro de Clientes");
		 
	
		
	}
Continua sempre igual.
e o CadastroCliente é o JFrame qe está sendo mostrado? Como faz para mostrar ele? Aqui um exemplo mínimo (usando parte do seu código):
package cfh.forum.javafree;

import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * @version 1.0, 21.09.2009
 */
@SuppressWarnings("serial")
public class CadastroCliente extends JFrame {
    
    public CadastroCliente() {
        super();
        initialize();
        this.setLocationRelativeTo(null);
    }

    private void initialize() {
        this.setSize(554, 474);
        this.setLocationRelativeTo(null);
        this.setContentPane(getJContentPane());
        this.setTitle("Cadastro de Clientes");
    }

    private Container getJContentPane() {
        JPanel panel = new JPanel();
        panel.add(new JLabel("TESTE"));
        return panel;
    }
    
    public static void main(String[] args) {
        JFrame frame = new CadastroCliente();
        frame.setVisible(true);
    }
}
[]]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Simu, esse Cadastro de Clientes é o frame que está sendo mostrado sim. É a GUI do programa, eu to fazendo tudo na mesma classe. Mas essa classe não tem método main, eu coloquei aqui pra testar mas ainda continua igual. Você quer dar uma olhada no código inteiro? Coloquei em anexo a classe. Ela tá bem grande porque essa é uma das telas do meu TCC que eu estou fazendo.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]Simu, esse Cadastro de Clientes é o frame que está sendo mostrado sim. É a GUI do programa, eu to fazendo tudo na mesma classe. Mas essa classe não tem método main, eu coloquei aqui pra testar mas ainda continua igual. Você quer dar uma olhada no código inteiro? Coloquei em anexo a classe. Ela tá bem grande porque essa é uma das telas do meu TCC que eu estou fazendo.
Esse JFrame "Cadastro de Clientes - Stelzer Consultoria" está aparencendo centralizado corretamente (apagando as referências às classes não postadas)! Repetindo: "Como faz para mostrar ele?", como é o código? ou será que tem algum outro código externo (onde essa classe é instanciada, ClienteModel, ...) alterando a posição do JFrame? tambem pode ser algum problema relacionado com o tempo de acesso a banco de dados... outra tentativa:
...
    private void initialize() {
        this.setSize(554, 474);
        this.setContentPane(getJContentPane());
        this.setTitle("Cadastro de Clientes - Stelzer Consultoria");
        this.setLocationRelativeTo(null);
    }
[]]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="simu"][quote="Sidplay"]Simu, esse Cadastro de Clientes é o frame que está sendo mostrado sim. É a GUI do programa, eu to fazendo tudo na mesma classe. Mas essa classe não tem método main, eu coloquei aqui pra testar mas ainda continua igual. Você quer dar uma olhada no código inteiro? Coloquei em anexo a classe. Ela tá bem grande porque essa é uma das telas do meu TCC que eu estou fazendo.
Esse JFrame "Cadastro de Clientes - Stelzer Consultoria" está aparencendo centralizado corretamente (apagando as referências às classes não postadas)! Repetindo: "Como faz para mostrar ele?", como é o código? ou será que tem algum outro código externo (onde essa classe é instanciada, ClienteModel, ...) alterando a posição do JFrame? tambem pode ser algum problema relacionado com o tempo de acesso a banco de dados... outra tentativa:
...
    private void initialize() {
        this.setSize(554, 474);
        this.setContentPane(getJContentPane());
        this.setTitle("Cadastro de Clientes - Stelzer Consultoria");
        this.setLocationRelativeTo(null);
    }
[]]
Tem uma classe ClienteModel sim que é a classe onde constroi a jTable, veja:
package jTable;


import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

 // Classe para servir de modelo para a JTable  
public class ClienteModel extends AbstractTableModel {
	
	
	private static final long  serialVersionUID = 1L;  
	
//	 Lista de clientes do modelo da JTable  
	
	public final List<Cliente> clientes = new ArrayList<Cliente>();
	
	
	public int getColumnCount(){
		return 5;
	}
	
	public int getRowCount(){
		
		return clientes.size();
	}
	
	 public Object getValueAt(int rowIndex, int columnIndex) {  
		       Cliente cliente = clientes.get(rowIndex);  
		       switch (columnIndex) {  
		          
		          case 0:  
		             return cliente.getIdcliente();  
		       	  case 1:  
		             return cliente.getCliente();  
		          case 2:  
		             return cliente.getSexo();  
		          case 3:  
		             return cliente.getIdade();  
		          case 4:  
		             return cliente.getEndereco();  
		          default:  
		             return null;  
		       }  
		    }
	 
	  public String getColumnName(int column) {  
		        switch (column) {  
		           
		        	case 0:  
		              return "ID Cliente";  
		           	case 1:  
		              return "Cliente";  
		           case 2:  
		              return "Sexo";  
		           case 3:  
		              return "Idade";  
		           case 4:  
		              return "Endereço";  
		           default:  
		              return null;  
		        }  
		     }  
		  }  
	


As classes externas são classes para cara máscara dos campos do cadastro, de conexão e pra gerenciar a jTable. O Frame é mostrado dentro dessa classe mesmo.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[color=red]adicionado texto em vermelho abaixo[/color] [quote="simu"]... Esse JFrame "Cadastro de Clientes - Stelzer Consultoria" está aparencendo centralizado corretamente ...! [color=red][b]O código postado está em ordem![/b][/color] [b]Repetindo: "Como faz para mostrar ele?", como é o código?[/b] [color=red][b]quero dizer, onde está o setVisible() e o que acontece com a classe lá?[/b][/color] ou será que tem algum outro código externo ... alterando a posição do JFrame? [color=red][b]verificou?[/b][/color] tambem pode ser algum problema relacionado com o tempo de acesso a banco de dados... outra tentativa: [color=red][b]testou?[/b][/color]
...
    private void initialize() {
        this.setSize(554, 474);
        this.setContentPane(getJContentPane());
        this.setTitle("Cadastro de Clientes - Stelzer Consultoria");
        this.setLocationRelativeTo(null);
    }
[]]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Simu, nessa classe não tem o setVisible, mas eu coloquei esse código aqui e não acontece nada, continua aparecend na esquerda da tela.
public static void main(String[] args) {  
		         JFrame frame = new CadastroCliente();  
		         frame.setVisible(true);  
		     }  
Com você deu certo então? As classes externas que eu tenho é tudo pra gerenciar a jTable apenas.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]Simu, nessa classe não tem o setVisible, mas eu coloquei esse código aqui e não acontece nada, continua aparecend na esquerda da tela.
public static void main(String[] args) {  
		         JFrame frame = new CadastroCliente();  
		         frame.setVisible(true);  
		     }  
Com você deu certo então? As classes externas que eu tenho é tudo pra gerenciar a jTable apenas.
muito estranho, foi isso que eu fiz... tenta assim e posta o que foi escrito
    public static void main(String[] args) {
        JFrame frame = new CadastroCliente();
        Dimension paneSize = frame.getSize();
        System.out.println("pane: " + paneSize);
        Point centerPoint = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
        System.out.println("center: " + centerPoint);
        Point location = frame.getLocation();
        System.out.println("location: " + location);
        frame.setVisible(true);
    }
[]]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Coloquei isso no Main e não printou nada na tela e também não centralizou ainda a janela. Que estranho isso hein.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]Coloquei isso no Main e não printou nada na tela e também não centralizou ainda a janela. Que estranho isso hein.
Tem certeza de que seu bytecode foi recompilado? Confira os .class, apague-os e recompile...
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="staroski"][quote="Sidplay"]Coloquei isso no Main e não printou nada na tela e também não centralizou ainda a janela. Que estranho isso hein.
Tem certeza de que seu bytecode foi recompilado? Confira os .class, apague-os e recompile...
Pronto, apaguei o .class mas ainda continua a mesma coisa.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Depois eu vou criar uma classe com um frame só pra testar isso. Aí eu posto depois aqui o resultado.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

se não for problema de compilação, pode ser problema de ter uma classe (.class) com o mesmo nome em outro diretório que está sendo encontrada antes da classe correta... tente com outro nome, por exemplo "CadastroCliente123" (tambem garante que a .class é criada do zero) []]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Criei outra classe teste em outro pacote e ainda não deu certo. Aqui o .class e o .java ficam na mesma pasta. O código da classe teste é esse:
package teste;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Point;

import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import java.awt.GridBagConstraints;

public class Teste extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JPanel jPanel = null;

	private JButton jButton = null;

	/**
	 * This is the default constructor
	 */
	public Teste() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
		   
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getJPanel(), BorderLayout.CENTER);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.gridx = 0;
			gridBagConstraints.gridy = 0;
			jPanel = new JPanel();
			jPanel.setLayout(new GridBagLayout());
			jPanel.add(getJButton(), gridBagConstraints);
		}
		return jPanel;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("BOTÃO 1");
		}
		return jButton;
	}
	
	 public static void main(String[] args) {  
		         JFrame frame = new Teste();  
		         Dimension paneSize = frame.getSize();  
		         System.out.println("pane: " + paneSize);  
		         Point centerPoint = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();  
		         System.out.println("center: " + centerPoint);  
		         Point location = frame.getLocation();  
		         System.out.println("location: " + location);  
		         frame.setVisible(true);  
		     }  

}  //  @jve:decl-index=0:visual-constraint="383,108"
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Nossa, tanta confusão por algo tão simples... É só falta de atenção! Antes você estava executando bytecode antigo... [b]AGORA VOCÊ NÃO ESTÁ INVOCANDO O MÉTODO[/b] [i]setLocationRelativeTo(null)[/i]
import java.awt.*;

import javax.swing.*;

public class MinhaJanelinhaFeliz extends JFrame {

	private static final long serialVersionUID = 1L;

	public static void main(String[] args) {
		MinhaJanelinhaFeliz janela = new MinhaJanelinhaFeliz();
		janela.setDefaultCloseOperation(EXIT_ON_CLOSE);

		janela.setLocationRelativeTo(null);
		janela.setVisible(true);
	}

	public MinhaJanelinhaFeliz() {
		super("Janelinha Feliz Centralizada na Tela");
		getContentPane().add(BorderLayout.CENTER,
		                     new JLabel("Estou centralizada ou não?",
		                                JLabel.CENTER));
		setSize(480, 320);
	}
}
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

staroski, testei sua classe aqui e veja: [img]http://img2.imageshack.us/img2/6923/janela.jpg[/img] Acho que o problema é só aqui hein. Fiz até em outro workspace e não vai, sempre executa na esquerda. Mas pode deixar, isso nem é importante também. Não é isso que vai me fazer passar ou reprovar na hora de apresentar o TCC mesmo hehehe. Tem coisa bem pior que vou ter que resolver no meu sistema. Mas valeu a todos pela ajuda e paciência.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Bom, o teu fonte está diferente do que eu postei... Eu não criei nenhum metodo [b]initialize[/b] Posta o código da sua classe....
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="staroski"]Bom, o teu fonte está diferente do que eu postei... Eu não criei nenhum metodo [b]initialize[/b] Posta o código da sua classe....
Engraçado, agora que vi ali esse método. Mas testei de novo aqui com seu código e agora prestando atenção, coloquei certinho como você passou e ainda fica aparecendo na esquerda. O código da minha classe está em anexo.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"][quote="staroski"]Bom, o teu fonte está diferente do que eu postei... Eu não criei nenhum metodo [b]initialize[/b] Posta o código da sua classe....
Engraçado, agora que vi ali esse método. Mas testei de novo aqui com seu código e agora prestando atenção, coloquei certinho como você passou e ainda fica aparecendo na esquerda. O código da minha classe está em anexo.
tentou o meu mini-exemplo acima? http://javafree.uol.com.br/topic-1279-Centralizar-janelas-na-tela.html?page=1#176453 outra pergunta: onde/como é que voce está rodando essa classe? por uma IDE? numa página HTML?... []]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

A próxima tentativa seria:
package cfh.forum.javafree;

import javax.swing.JFrame;

/**
 * @version 1.1, 30.09.2009
 */
@SuppressWarnings("serial")
public class Centro2 extends JFrame {

    public static void main(String[] args) {
        new Centro2();
    }
    
    private Centro2() {
        super("CENTRO 2");
        JFrame frame = this;
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setSize(400, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
mas estou estranhando essa mensagem na Console... parece que voce está usando o Visual Editor para rodar o programa! [quote="Console"] Centro [[b]JavaBean[/b]] C:\... [b]IWAV0055I[/b] Java Bean Centro started with the main method
Tenta rodar o CadastroCliente como uma "Java Application"? Dentro da classe que tem o main, selecione os menus: Run -> Run As... -> Java Application ou Mouse Direito -> Run As... -> Java Application []]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

simu, testei aqui essa outra classe e também está executando no meio. Eu estava executando antes com o Java Bean sim, mas testei aqui usando Java Application e foi tudo normal também. Agora como a gente faz pra executar a minha classe no meio? Pelo menos os testes tá tudo ok agora.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="simu"][quote="Sidplay"][quote="staroski"]Bom, o teu fonte está diferente do que eu postei... Eu não criei nenhum metodo [b]initialize[/b] Posta o código da sua classe....
Engraçado, agora que vi ali esse método. Mas testei de novo aqui com seu código e agora prestando atenção, coloquei certinho como você passou e ainda fica aparecendo na esquerda. O código da minha classe está em anexo.
tentou o meu mini-exemplo acima? http://javafree.uol.com.br/topic-1279-Centralizar-janelas-na-tela.html?page=1#176453 outra pergunta: onde/como é que voce está rodando essa classe? por uma IDE? numa página HTML?... []] Sim tentei e continua sempre igual. Eu estou rodando na IDE Eclipse.
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

muito estranho, tenta com essa classe:
package cfh.forum.javafree;

import javax.swing.JFrame;

/**
 * @version 1.0, 30.09.2009
 */
public class Centro {

    public static void main(String[] args) {
        JFrame frame = new JFrame("CENTRO");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setSize(400, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
[]]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

Finlamente! Agora sim executou no centro! :evil: Testei essa sua classe e apareceu no centro da tela. Veja o print: [img]http://img17.imageshack.us/img17/8764/telay.jpg[/img]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]Eu estava executando antes com o Java Bean sim, mas testei aqui usando Java Application e foi tudo normal também.
Beleza! [quote="Sidplay"]Agora como a gente faz pra executar a minha classe no meio?
Ué, da mesma forma como você fez antes, Run as [b]Java Application[/b] selecionando sua classe com método [b]main[/b]
GOSTEI 0
Deivson Costa

Deivson Costa

09/04/2009

[quote="Sidplay"]simu, testei aqui essa outra classe e também está executando no meio. Eu estava executando antes com o Java Bean sim, mas testei aqui usando Java Application e foi tudo normal também. Agora como a gente faz pra executar a minha classe no meio? Pelo menos os testes tá tudo ok agora.
do jeito que escreví na MENSAGEM ANTERIOR [quote="simu"]. . . [size=13]Tenta rodar o CadastroCliente como uma "Java Application"? Dentro da classe que tem o main, selecione os menus: Run -> Run As... -> Java Application ou Mouse Direito -> Run As... -> Java Application[/size] []]
[]
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

Segue abaixo : frame.setLocationRelativeTo(null); abraço !
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

[quote="BrunoMelo"]Segue abaixo : frame.setLocationRelativeTo(null); abraço !
nesse ponto já estivemos a 3 semanas atrás: [i]aparentemente[/i] o setLocationRelativeTo não está funcionando... :espanto: não leu as mensagens ateriores, néé?! :bebado: mas acho que o problema já foi resolvido... []]
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

package cfh.forum.javafree; import javax.swing.JFrame; /** * @version 1.0, 30.09.2009 */ public class Centro { public static void main(String[] args) { JFrame frame = new JFrame("CENTRO"); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setSize(400, 300); frame.setLocationRelativeTo(null); frame.setVisible(true); } }
Olha...presta atenção nesse codigo, tem uma linha nele que esta assim : frame.setLocationRelativeTo(null); E este codigo funcionou, entao antes de falar que eu nao li as mensagens anteriores, presta mais anteção ! abraço !
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

[quote="simu"]muito estranho, tenta com essa classe:
package cfh.forum.javafree;

import javax.swing.JFrame;

/**
 * @version 1.0, 30.09.2009
 */
public class Centro {

    public static void main(String[] args) {
        JFrame frame = new JFrame("CENTRO");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setSize(400, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
[]]
Esta classe acima funcionou, agora olhando o codigo temos a linha : frame.setLocationRelativeTo(null); Entao antes de vim aqui pra fala que eu nao li as mensagens anteriores do forum, presta mais atenção ! abraço !
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

simu, eu nem tentei mais. Só funcionou mesmo os exemplos que você fez. Outra hora eu tento de novo.
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

[quote="BrunoMelo"][quote="simu"]muito estranho, tenta com essa classe:
package cfh.forum.javafree;

import javax.swing.JFrame;

/**
 * @version 1.0, 30.09.2009
 */
public class Centro {

    public static void main(String[] args) {
        JFrame frame = new JFrame("CENTRO");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setSize(400, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
[]]
Esta classe acima funcionou, agora olhando o codigo temos a linha : frame.setLocationRelativeTo(null); Entao antes de vim aqui pra fala que eu nao li as mensagens anteriores do forum, presta mais atenção ! abraço !
quem é que é para prestar atenção?!? 18/09 staroski sugere (novamente) o uso do [u]setLocationRelativeTo[/u] 18/09 Sidplay quer saber onde posicionar o [u]setLocationRelativeTo[/u] 20/09 até 30/09 Sidplay não consegue centralizar usando o [u]setLocationRelativeTo[/u] 30/09 eu postei a classe Centro para ele tentar 30/09 Sidplay consegue centralizar [b]somente [/b]a classe Centro [b]08/10[/b] voce escreve "Segue abaixo: frame.setLocationRelativeTo(null); abraço !" 09/10 escreví "nesse ponto já estivemos a 3 semanas atrás..." se não entendeu, me desculpe... (e dizem que alemão não aceita brincadeira...)
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

desculpa ae entaoo !
GOSTEI 0
Márcio Almeida

Márcio Almeida

09/04/2009

A ajuda pode estar meio atrasada mas como estou aprendendo, devem haver outras pessoas que chegarão aqui também então ai vai minha contribuição. Encontrei no google. Para resolver esta situação o setLocationRelativeTo deve estar estar depois do setVisible para que centralice normalmente, ou seja:
      //Display the window. 
       frame.pack();
       frame.setVisible(true); 
       frame.setLocationRelativeTo(null); 
Ajuste o seu código [quote="[color=darkgreen][i]2012-07-19[/i] mensagem editada por [i][url=http://javafree.uol.com.br/viewprofile.jbb?u=5274]simu[/url][/i][/color]"][color=green] - adicionadas as tags [b][co[/b][b]de][/b] e [b][/co[/b][b]de][/b] [:-[b][/b]| [/color]
GOSTEI 0
Bruno Melo

Bruno Melo

09/04/2009

[quote="M?cio Almeida"]A ajuda pode estar meio atrasada mas como estou aprendendo, devem haver outras pessoas que chegarão aqui também então ai vai minha contribuição. Encontrei no google. Para resolver esta situação o setLocationRelativeTo deve estar estar depois do setVisible para que centralice normalmente, ou seja: //Display the window. frame.pack(); frame.setVisible(true); frame.setLocationRelativeTo(null); Ajuste o seu código
que estranho eu SEMPRE uso o setLocation... antes do setVisible, deixando o setVisible como ÚLTIMO método chamado e [b]sempre funcionou[/b]!! O que realmente importa é ter definido o tamanho da tela (por exemplo com o método setSize ou pack) antes de chamar o setLocationRelativeTo. se for depois do setVisible pode até ocorrer da janela aparecer no canto superior esquerdo e depois 'pular' para o centro (principalmente se feito na Thread errada)...
GOSTEI 0
Márcio Almeida

Márcio Almeida

09/04/2009

[quote="M?cio Almeida"]A ajuda pode estar meio atrasada mas como estou aprendendo, devem haver outras pessoas que chegarão aqui também então ai vai minha contribuição. Encontrei no google. Para resolver esta situação o setLocationRelativeTo deve estar estar depois do setVisible para que centralice normalmente, ou seja:
     //Display the window. 
       frame.pack();
       frame.setVisible(true); 
       frame.setLocationRelativeTo(null); 
      
Ajuste o seu código
GOSTEI 0
Márcio Almeida

Márcio Almeida

09/04/2009

[quote="M?cio Almeida"][quote="M?cio Almeida"]A ajuda pode estar meio atrasada mas como estou aprendendo, devem haver outras pessoas que chegarão aqui também então ai vai minha contribuição. Encontrei no google. Para resolver esta situação o setLocationRelativeTo deve estar estar depois do setVisible para que centralice normalmente, ou seja:
     //Display the window. 
       frame.pack();
       frame.setVisible(true); 
       frame.setLocationRelativeTo(null); 
      
Ajuste o seu código
concertei lá para você! da próxima vez use o botão "editar" e não o "citar" [:-[b][/b])
GOSTEI 0
POSTAR