Professional Documents
Culture Documents
Aplicada - Java
ECOM04
Prof. Airton Motoki Tamakoshi
airton.motoki@gmail.com
Materia da gamedeveloper:
http://gamedeveloper.com.br/a-tecnologia-por-tras-de-minecr
aft/
Publicado em 22/10/2011
Viso geral
Minecraft
JFrame
JPanel
Graphics
JFrame
JFrame
JFrame a classe que permite exibir e trabalhar com o
conceito de janela.
public Janela(){
System.out.println("Meu Frame");
}
}
JFrame
No cdigo anterior quando executado nada apresentado.
setDefaultCloseOperation(int i);
setSize(int largura, int altura);
setVisible(true);
add(Component c);
JFrame
setDefaultCloseOperation(int i);
setDefaultCloseOperation(int i);
JFrame.EXIT_ON_CLOSE
JFrame.DO_NOTHING_ON_CLOSE
JFrame.HIDE_ON_CLOSE
JFrame.DISPOSE_ON_CLOSE
JFrame
setVisible(true);
setVisible(true);
add(Component c);
add(Component c);
super(String
super(String str) str);
public Janela(){
super("Minha Janela");
this.setDefaultCloseOperation
(JFrame.DISPOSE_ON_CLOSE);
this.setSize(400, 400);
this.add(new JTextField("Texto"));
this.setVisible(true);
}
}
JFrame
public Janela(){
this.setDefaultCloseOperation
(JFrame.DISPOSE_ON_CLOSE);
this.setSize(400, 400);
this.setVisible(true);
this.add(new JTextField("Texto"));
}
}
JPanel
JPanel
JPanel um componente de interface grfica que nada mais
que um container de componentes.
public Janela(){
this.setDefaultCloseOperation
(JFrame.DISPOSE_ON_CLOSE);
this.setSize(400, 400);
this.add(panel);
this.setVisible(true);
}
}
JPanel
Tambm possvel extender a classe JPanel da mesma
forma como realizado com o JFrame.
public Content(){
super();
label1 = new JLabel("Label01");
label2 = new JLabel(" =) ");
this.add(label1);
this.add(label2);
}
}
JPanel
public Frame(){
super("Minha Janela");
this.setDefaultCloseOperation(...);
this.setSize(400, 400);
this.add(content);
this.setVisible(true);
}
}
Graphics
Graphics
A classe Graphics um contexto que habilita o desenho em
uma tela em java.
@Override
public void paint(Graphics grphcs) {
super.paint(grphcs);
grphcs.setColor(Color.BLACK);
grphcs.drawLine(0, 0, 400, 400);
}
}
Graphics
O contexto Graphics pode ser acessado por meio da
sobrescrita do mtodo paint() e paintComponent() da classe
JPanel.
@Override
public void paint(Graphics grphcs){
super.paint(grphcs);
//...
}
Graphics
A cor pode ser definida por uma constante ou por meio dos
valores em RGB.
Color
Construtores:
input de Cor
Exemplo:
Color c = JColorChooser.showDialog(null,
"Escolha", Color.RED);
Font
Font
Outra classe que permite alterar a esttica de um programa.
Tipo de fonte
Estilo
Tamanho
Font
A classe Font utilizada por vrios componentes que
possuem texto em sua formao.
setFont(Font f)
Font
O objeto Font instanciado pelo construtor:
Exemplo:
Font.SERIF
Font.MONOSPACED
Font.SANS_SERIF
Font.BOLD
Font.PLAIN
Font.ITALIC
Font.BOLD+Font.ITALIC
Font size:
int = tamanho da fonte
Font
Extra: Buscando todas as fontes disponveis no computador
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
String[] names =
ge.getAvailableFontFamilyNames();
@Override
public void paint(Graphics g) {
super.paint(g);
Move x e y
java.awt.geom
Ellipse2D.Double
Rectangle2D.Double
RoundRectangle2D.Double
Arc2D.Double
Line2D.Double
API Java2D - Shapes
Para utilizar as estruturas do pacote java.awt.geom
necessrio instanciar o objeto desejado, com os parmetros
adequados.
g2d.setPaint(new TexturePaint(buffImage,
new Rectangle(10, 10)));
g2d.fill(new RoundRectangle2D.Double(155,
30, 75, 100, 50, 50));
}
API Java2D - Shapes
g2d.setPaint(Color.yellow);
float d[] = {10, 10};
g2d.setStroke(new BasicStroke
(4, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10, d, 0));
g2d.draw(new Line2D.Double
(320, 30, 395, 150));
}
API Java2D - Shapes
@Override
public void paint(Graphics grphcs) {
super.paint(grphcs);
Graphics2D g2d = (Graphics2D) grphcs;
paint2D_01(g2d);
paint2D_02(g2d);
paint2D_03(g2d);
paint2D_04(g2d);
paint2D_05(g2d);
}
API Java2D - Shapes
API Java2D - Shapes
GradientPaint(xi, yi, CorI, xf, yf, CorF, cicl )
BufferedImage(lagura, altura,
BufferedImage.TYPE_INT_RGB)
buffImage.createGraphics();
BasicStroke( 4, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10, dashes, 0 )
GeneralPath
GeneralPath
Alm dos Shapes j disponveis pelo pacote java.awt.geom,
podemos construir um shape personalizado com a classe
GeneralPath
Utilizamos os mtodos:
moveTo(x, y)
lineTo(x, y)
curveTo(x1, y1, x2, y2, x3, y3)
quadTo(x1, y1, x2, y2)
closePath();
GeneralPath
moveTo(x, y)
lineTo(x, y)
closePath()