[tutorial] java swing: parte 1

Postagem de conteúdo sobre programação java
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 725
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] java swing: parte 1

Post by Kodo no Kami » Sat Jul 01, 2017 2:31 am

e ae galera nesse tutorial vamos aprender a criar um programa com interface grafica (GUI) em java com o swing, a linguagem java não é meu forte apesar de brincar com ela deis de 2011 embora não tenho progredido tanto em java, sei que existem outros frameworks melhores e mais recente para o desenvolvimento de interfaces graficas em java, como infelizmente eu so conheço o swing então vamos brincar com ele mesmo '-', para facilitar vou esta usando o eclipse como IDE, para começar a gente cria um projeto novo e uma classe nele

Code: Select all

package kodo;

public class Principal {
    public static void main(String[] args) {
    }
}
Image

importamos as classes do swing (javax.swing.*)

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    public static void main(String[] args) {
    }
}
para começar a gente cria uma janela para isso usamos a class JFrame (javax.swing.JFrame), então instanciamos um objeto dela (podemos passar uma string que sera o titulo)

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
    }
}
com o objeto criado podemos exibir ele com o metodo setVisible, passamos como argumento true ()

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setVisible(true);
    }
}
tambem é possivel usar o metodo show porem é um metodo deprecated ou seja caiu em desuso

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.show();
    }
}
Image

podemos redimensionar essa janela com o metodo setSize, nesse metodo passamos 2 argumentos, a largura horizontal (x), o segundo é argumento é largura vertical (y)

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setSize(400,300);
	janela.setVisible(true);
    }
}
podemos passar um objeto do tipo Dimension (java.awt.Dimension) no lugar do argumentos para o setSize

Code: Select all

package kodo;

import javax.swing.*;
import java.awt.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	Dimension tamanho = new Dimension(400,300);
	
	janela = new JFrame("minha janela");
	janela.setSize(tamanho);
	janela.setVisible(true);
    }
}
para mudar a posição da janela usamos o metodo setLocation, passamos como argumento para ele a posição horizontal (x) e a posição vertical (y)

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setSize(400,300);
	janela.setLocation(450,450);
	janela.setVisible(true);
    }
}
podemos passar para o metodo setLocation um objeto do tipo Point (java.awt.Point)

Code: Select all

package kodo;

import javax.swing.*;
import java.awt.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	Point pos = new Point(450,450);
	
	janela = new JFrame("minha janela");
	janela.setSize(400,300);
	janela.setLocation(pos);
	janela.setVisible(true);
    }
}
com o metodo setBounds mudamos tanto a posição da janela quanto a largura, nesse metodo passamos como argumento a posição x e y seguido do largura x e y

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setBounds(200,200,640,480);
	janela.setVisible(true);
    }
}
ou tambem podemos passar o objeto Rectangle (java.awt.Rectangle) para o setBounds

Code: Select all

package kodo;

import javax.swing.*;
import java.awt.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	Rectangle jan = new Rectangle(200,200,640,480);
	
	janela = new JFrame("minha janela");
	janela.setBounds(jan);
	janela.setVisible(true);
    }
}
Image

podemos alterar o titulo de uma janela com o metodo setTitle

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setBounds(200,200,300,300);
	janela.setTitle("novo titulo");
	janela.setVisible(true);
    }
}
podemos mudar a cor do fundo da janela usando o metodo getContentPane seguido do setBackground, especificamos a cor com atributo do Color (java.awt.Color)

Code: Select all

package kodo;

import javax.swing.*;
import java.awt.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setBounds(200,200,300,300);
	janela.getContentPane().setBackground(Color.blue);
	janela.setVisible(true);
    }
}
Image

as vezes quando fechamos a janela o terminal fica preso, podemos forçar essa finalização usando o metodo setDefaultCloseOperation passamos como argumento para ele o atributo EXIT_ON_CLOSED

Code: Select all

package kodo;

import javax.swing.*;

public class Principal {
    private static JFrame janela;
    
    public static void main(String[] args) {
	janela = new JFrame("minha janela");
	janela.setBounds(200,200,300,300);
	janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
	janela.setVisible(true);
    }
}
bom galera esse tutorial tera uma segunda parte ^^ (ps: não quero escrever mais, vou assistir anime!!!)

by kodo no kami
Image

que desagradavel ~ mirai kuriyama

Post Reply

Return to “Java”