Posicionando um elemento gráfico num ponto exato da janela

2 respostas
MisaelJavaPJ

Boa noite a Todos

Sabe-se que quando é necessário o posicionamento de objetos de GUI em uma aplicação gráfica, pode ser usado para se gerenciar as posições dos objetos(button,TextFild,TextArea, Label,etc) os objetos FlowLayout, BorderLayout e GridLayout. Só que, o FlowLayout organiza os objetos um
após o outro, o BorderLayout, organiza cinco objetos nas cinco direções: north, south, west, east e center, enquanto que o GridLayout organiza vários objetos em grade, com colunas e linhas. Mas se houver a necessidade de se posicionar um objeto em um ponto específico, ou seja,
em um determinado pixel da janela?

Exemplo de código para análise:

public class Tela{

    private Label Label1;

    public Tela(){
        super("Teste de Label");
        Container c =  this;
        c.setLayout(new FlowLayout());

        Label1 = new Label("Label com apenas texto");
        c.add(Label);

        setSize(275, 170);
        setLocation(300, 200);
        show();
    }

    public static void main(String []args){
        Tela tela = new Tela();
        tela.addWindowListener(new WindowAdapter()){
            public void windowClosing(WindowEvent FecharJanela){
                System.exit(0);
            }
        }
    }    
}

Esse código gera uma janela com uma frase escrita dentro dela, mas se quisermos posicionar a frase alguns pixels em qualquer direção, como ficaria o código ou que técnica melhor utilizar?
Outro aspecto interesante dentro deste exemplo: Ao se continuar o texto o correto serira usar o caractere de escape ‘\n’ para quebrar e gerar nova linha. Nos testes que fiz ao usar esse caractere de escape no código acima que ficou assim:

Label1 = new Label("Label com apenas texto\ncontinuação do texto a seguir...");

A idéia disto dentro da janela seria:

Label com apenas texto
continuação do texto a seguir…

Porém foi gerado um “quadrado” entre as strings, qual seria a maneira correta de fazer uso para esta situação?

[/code]

2 Respostas

C

O método jLabel:
void setHorizontalAlignment(int alignment)
Configura o alinhamento horizontal(eixo X) do jLabel,

O método jLabel:

void setVerticalAlignment(int alignment)
Cofigura o alinhamento vertical(eixo Y) do jLabel;

espero ter ajudado, se não consequir o que queria posta sua dúvida.

MisaelJavaPJ

“Cloudx”:
O método jLabel:
void setHorizontalAlignment(int alignment)
Configura o alinhamento horizontal(eixo X) do jLabel,

O método jLabel:

void setVerticalAlignment(int alignment)
Cofigura o alinhamento vertical(eixo Y) do jLabel;

espero ter ajudado, se não consequir o que queria posta sua dúvida.

Opa,

Seu Cloudx é por ae mesmo, detalhe é, nessa sua solução o pacote a ser usado dae é o:

import javax.swing.*;

Por que estava até então discutindo dentro do pacote AWT, mas com certeza essa solução é excelente, mas assim, pode então ser usado esse método com os outros objetos né? Ou seja,para cada tipo de objeto vou ter um método de alinhamento pixel x pixel na janela?
Nessa sua solução como ficaria o codigo acima?

Criado 7 de setembro de 2007
Ultima resposta 9 de set. de 2007
Respostas 2
Participantes 2