O que são e como usar os métodos getWidth() e getHeight()

No artigo anterior de nossa apostila de Java, mostramos como criar um frame, adicionar um panel nele e criar uma linha nesse panel.

Porém, aplicações gráficas não são estáticas. Ao minimar, maximizar, mover de lugar, colocar a janela de outro programa por cima de nossa janela e uma infinidade de outros fatores fazem com que nosso aplicativo mude durante sua execução.

Note que no exemplo do código de nosso último artigo, criamos uma linha que vai do ponto (0,0) e vai até o ponto onde a largura (width) é 250 e a altura (height) é 250.
Ou seja, aquela linha liga os pontos (0,0) até o (250,250), e só.

Tente maximizar a tela e veja o que ocorre: a linha só existe de (0,0) até o (250,250).
E se você quiser sempre uma linha que ligue a extremidade superior esquerda até a extremidade inferior direita?

Você precisará das atuais informações de tamanho da tela do aplicativo, mas o Java armazena essas informações e podemos obter esses dados através dos métodos getWidth() e getHeight().


Os métodos getWidth() e getHeight()


Usamos os métodos getWidth() e getHeigth() para pegar as informações atuais da largura e altura da janela que o usuário está visualizando.

Agora, em vez de criar um desenho que liga o ponto (0,0) até o (250,250), vamos ligar a origem ao ponto (getWidth(), getHeight()).
Ou seja, sempre a linha sai da origem e termina na extremidade inferior direita, criando uma diagonal

Veja como ficou quando alongamos a tela:

Como usar os metodos getWidth e getHeigth para desenhar em Java
Usando getWidth() e getHeight(), a linha sempre toca a ponta inferior direita

Exemplo de código: Desenhando duas linhas em Java, usando getWidth() e getHeight()

Vamos agora, finalmente, desenhar algo em nosso frame/panel.
Vamos criar uma linha que saia da origem e termine no canto inferior direito.
As coordenadas dessa linha serão: origem(0,0), fim(getWidth() , getHeight() )

E outra que vai ligar a outra diagonal.
Ou seja a origem é no (0, getHeight()) e o término da linha em (getWidth(), 0).
Concorda?

Caso tenha dúvidas no código, ele foi inteiramente explicado no artigo passado.

Nosso código para desenhar essa linha será:

-->Lines.java


import javax.swing.JFrame;

public class Lines {

    public static void main(String[] args) {
       DrawLines panel = new DrawLines();

       JFrame frame= new JFrame("Desenhando Linhas - Curso Java Progressivo");

        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setSize( 250, 250 );
        frame.setVisible( true );
        frame.add( panel );
} }

-->DrawLines.java


import java.awt.Graphics;
import javax.swing.JPanel;

public class DrawLines extends JPanel{
    
    public void paintComponent( Graphics g ){
    super.paintComponent( g );
        
    g.drawLine( 0, 0, getWidth(), getHeight() );
    g.drawLine( 0, getHeight(), getWidth(), 0 );

    }
}


Você deverá ver o seguinte desenho em sua aplicação Java:



Como criar um desenho de X em Java

Um comentário:

Wallan Vinicius disse...

Concluído de modo, perfeito xD

Dicas e Novidades de Java por e-mail

Sabe quanto custa um bom livro de java?
Entre R$ 100,00 e R$300,00

Sabe quanto custa um bom curso presencial de Java?
Entre R$ 1.500,00 até R$ 4.000,00

Sabe quanto custa estudar pelo Java Progressivo?
Absolutamente nada.

Porém, também precisamos de sua ajuda e apoio.
Para isso, basta curtir nossa Fan Page e clicar no botão G+ do Google.