Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

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.

Altura e Largura

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

3 comentários:

Wallan Vinicius disse...

Concluído de modo, perfeito xD

Anônimo disse...

Muito bom

Anônimo disse...

Muito bom, aprendi bastante até aqui

Contribuir com o Java Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo


Tutoriais de Java