Como posso fazer para que um JInternalFrame fique centralizado em um JDesktopPane.
Abraço!!!
GOSTEI 0
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
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
09/04/2009
o "setLocationRelativeTo" funcionou perfeitamente.
Obrigado pela dica!
GOSTEI 0
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
09/04/2009
Segue abaixo :
frame.setLocationRelativeTo(null);
abraço !
GOSTEI 0
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
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
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
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
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
09/04/2009
desculpa ae entaoo !
GOSTEI 0
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
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
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
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