programação ii - aula 1 · 2018-06-03 · aula 1 vidal. ronnison reges1 1an alise e...
TRANSCRIPT
Programacao IIAula 1
Vidal. Ronnison Reges1
1Analise e Desenvolvimento de Sistemas - ParangabaCentro Universitario Estacio do Ceara
2018
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 1 / 24
DROPBOX
https://goo.gl/nEvz6w
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 2 / 24
ROTEIRO
1 Exemplificacao de um modelo de desenvolvimento do SwingModelo de desenvolvimento do Swing
2 PRINCIPAIS GERENCIADORESTipos de Gerenciadores
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 3 / 24
ROTEIRO
1 Exemplificacao de um modelo de desenvolvimento do SwingModelo de desenvolvimento do Swing
2 PRINCIPAIS GERENCIADORESTipos de Gerenciadores
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 4 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
O Java fornece uma infinidade de funcionalidades para provercomunicacao humano-computador.
Duas bibliotecas para desenvolver um GUI.
java.awt : Abstract Window Toolkit (classes basicas);
javax.swing : Swing Componets ? Graphical User Interface
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 5 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
O Java fornece uma infinidade de funcionalidades para provercomunicacao humano-computador.
Duas bibliotecas para desenvolver um GUI.
java.awt : Abstract Window Toolkit (classes basicas);
javax.swing : Swing Componets ? Graphical User Interface
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 6 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
Figure: Hierarquia de Classes
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 7 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
Componentes atomicos
Sao elementos ou componentes que nao permitem conter outroselementos. Podemos citar, dentre outros, botoes, labels, textFields,sliders, check boxes, scrollbars, etc.
Componentes contaneirs
Sao elementos que contem componenetes visuais, do tipoJComponente, em uma colecao e organizando-os por meio de umgerenciador de layout e exibindo na tela.
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 8 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
Antes de construir uma interface grafica e muito importante planejar:
LayoutUsabilidade
Por exemplo:
Uma interface que contenha uma janela, uma barra de menu e umabarra de statusA janela e responsavel por conter todos os controles e com acapacidade de receber os componentes visuais
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 9 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
Container de alto nıvel
javax.swing.JFrame
Nao e uma boa pratica de programacao utilizar classes de alto nıveldiretamente
E mais pratico especializa-las
Ou seja criar novas classes que estendam seu comportamento,herdando todos os metodos das classes originais (super classes)
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 10 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
public class MeuFrame extends JFrame {
Public MeuFrame () {
Super (\Minha Janela v1.0");
}
Public void init(){
setForeground(Color.black);
setBackgroud(new Color (192, 192, 192));
SetSize(200, 200);
SetLocation(300,200);
setVisible(true);
}
Public static void main(String[] args){
MeuFrame.init();
}
}
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 11 / 24
ROTEIRO
1 Exemplificacao de um modelo de desenvolvimento do SwingModelo de desenvolvimento do Swing
2 PRINCIPAIS GERENCIADORESTipos de Gerenciadores
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 12 / 24
PRINCIPAIS GERENCIADORESTipos de Gerenciadores
Uma vez aprendido a criar e exibir componentes, e necessarioposiciona-los e dimensiona-los.
Foi criado um conjunto de gerenciadores de layout para realizar ocalculo para alinhamento, posicionamento e dimensionamento,independentes da plataforma de execucao
FlowLayoutGridLayoutBorderLayoutGridBagLayoutLayouts compostos
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 13 / 24
PRINCIPAIS GERENCIADORESTipos
Todos os gerenciadores de layout implementam a interfaceLayoutManager que faz parte do pacote java.awt. Existe o metodosetLayout da classe Container que aceita um objeto que implementa ainterface LayoutManager como um argumento
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 14 / 24
PRINCIPAIS GERENCIADORESTipos
FlowLayout
Ocorre quando os componentes GUI sao colocados em um conteiner daesquerda para a direita na ordem em que sao adicionados no conteinerQuando a borda do conteiner e alcancada, os componentes continuaraoa ser exibidos na proxima linha.A classe FlowLayout permite aos componentes GUI ser alinhados aesquerda, centralizados (padrao) e alinhados a direita
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 15 / 24
PRINCIPAIS GERENCIADORESTipos
FlowLayout
Ocorre quando os componentes GUI sao colocados em um conteiner daesquerda para a direita na ordem em que sao adicionados no conteinerQuando a borda do conteiner e alcancada, os componentes continuaraoa ser exibidos na proxima linha.A classe FlowLayout permite aos componentes GUI ser alinhados aesquerda, centralizados (padrao) e alinhados a direita
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 16 / 24
PRINCIPAIS GERENCIADORESTipos
FlowLayout
Figure: FlowLayout 1
Figure: FlowLayout 2
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 17 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FlowExemplo extends JFrame{
private JButton sim, nao, cancelar;
private JLabel mensagem;
public FlowExemplo () {
super("FlowExemplo v1.0");
sim = new JButton("Sim");
nao = new JButton("N~ao");
cancelar = new JButton("Cancelar");
mensagem = new JLabel("Mensagem: ");
getContentPane().setLayout(
new FlowLayout());
}
public void init() {
setForeground(Color.black);
setBackground(new Color(192, 192, 192));
setSize(200, 200);
setLocation(300, 200);
//adiciona componenetes
getContentPane().add(mensagem);
getContentPane().add(sim);
getContentPane().add(nao);
getContentPane().add(cancelar);
setDefaultCloseOperation(
EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(
String[] args){
new FlowExemplo().init();
}
}
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 18 / 24
PRINCIPAIS GERENCIADORESTipos
GridLayout
E um gerenciador de layout que divide o conteiner em uma grade demodo que os componentes podem ser colocados nas linhas e colunas.A classe GridLayout estende a classe Object e implementa a interfaceLayoutManager.Cada componente no GridLayout tem os mesmos tamanhos, ondepodem ser inserida uma celula na parte superior esquerda da grade queprossegue da esquerda para a direita ate preencher por completa.
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 19 / 24
PRINCIPAIS GERENCIADORESTipos
GridLayout
Figure: GridLayout 1
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 20 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.Jlabel;
public class GridExemplo extends JFrame {
private JButton sim, nao, cancelar;
private JLabel mensagem;
public GridExemplo () {
super ("Meu Grid v1.0");
sim = new JButton("Sim");
nao = new JButton("N~ao");
cancelar = new JButton("Cancelar");
mensagem = new JLabel("Mensagem:");
getContentPane().setLayout(
new GridLayout(2, 2));
}
public void init () {
setForeground(Color.red);
setBackground(new Color(
192, 192, 192));
setSize(300, 200);
setLocation(200, 200);
getContentPane().add(mensagem);
getContentPane().add(sim);
getContentPane().add(nao);
getContentPane().add(cancelar);
setDefaultCloseOperation(
EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(
String[] args) {
new GridExemplo().init();
}
}
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 21 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.Jframe;
public class FlowExemplo extends JFrame {
private JButton botaoEsquerdo;
private JButton botaoDireito;
private JButton botaoCentral;
private FlowLayout layout;
private Container container;
public FlowExemplo() {
super("Demonstrac~ao de um FlowLayout");
layout = new FlowLayout();
container = getContentPane();
setLayout(layout);
botaoEsquerdo = new JButton("Esquerda");
add(botaoEsquerdo);
botaoEsquerdo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
layout.setAlignment(FlowLayout.LEFT);
layout.layoutContainer(container);
}
}
);
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 22 / 24
Modelo de desenvolvimento do SwingInterfaces Graficas
public FlowExemplo() {
......
botaoCentral = new Jbutton("Centro");
add(botaoCentral);
botaoCentral.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
layout.setAlignment(FlowLayout.CENTER);
layout.layoutContainer(container);
}
}
);
botaoDireito = new Jbutton("Direita");
add(botaoDireito);
botaoDireito.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
layout.setAlignment(FlowLayout.RIGHT);
layout.layoutContainer(container);
}
}
);
}
public static void main(String[] args) {
FlowExemplo fl = new FlowExemplo();
fl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fl.setSize(600, 75);
fl.setVisible(true);
}
}
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 23 / 24
Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 24 / 24