Ola é pessoal, gostaria de saber porque não esta mostrando as linhas no JFrame;
vou postar o código para que vocês possam analisar;
Shaps:
[code]import java.awt.Graphics;
import javax.swing.JPanel;
public class Shapes extends JPanel
{
// escolha do usuário qual forma desenhar
private int choice;
public Shapes( int userChoice )
{
choice = userChoice;
} // fim do construtor
// desenha uma cascata de formas que iniciam do canto superior esquerdo
public void paintComponet( Graphics g)
{
super.paintComponent(g);
for(int i = 0; i < 10; i++)
{
switch( choice )
{
case 1: // desenha retagulos
g.drawRect(10 + i * 10, 10 + i * 10,
50 + i * 10, 50 + i * 10);
break;
case 2: // desenha eclipses
g.drawOval(10 + i * 10, 10 + i * 10,
50 + i * 10, 50 + i * 10);
break;
}
}
}
}
[/code]
Principal:
[code]import javax.swing.JOptionPane;
import javax.swing.JFrame;
public class Principal
{
public static void main(String[] args)
{
String input = JOptionPane.showInputDialog(“Enter 1 to draw rectangles\n” +
“Enter 2 to draw ovals”);
int choice = Integer.parseInt( input );
Shapes panel = new Shapes(choice);
JFrame application = new JFrame("Decoderz Software On Demand");
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(300, 300);
application.setVisible(true);
}
}[/code]
Bom algumas coisas que influenciam:
use:
@override
public void paintComponet(Graphics g) {
Graphics g2d = (Graphics) g.create();
g.drawRect(10 + i * 10, 10 + i * 10,
50 + i * 10, 50 + i * 10);
g2d.drawRect(10 + i * 10, 10 + i * 10,
50 + i * 10, 50 + i * 10);
e no final do método coloque:
g2d.dispose();
g.dispose();
poderia me falar porque dessas mudanças?
@edit
Observação: Ainda não esta exibindo o circulo no frame.
0xFFFFFFF
Seu primeiro código só tem 1 erro, na seguinte linha:
public void paintComponet( Graphics g)
note que falta 1 letra “n”
public void paintComponent( Graphics g)
Fiz a alteração aqui e funcionou. Claro, vale a pena considerar as observações do InicianteJavaHenrique, como usar Java2D, que tem bem mais recursos.
Abraços.
Estava sem IDE e não tinha observado, como o TerraSkilll falou só faltava o n
@override
protected void paintComponent(Graphics g) {
Você está sobrescrevendo um método já existente da classe JPanel (que você está herdando).
:arrow: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Override.html
@override
protected void paintComponent(Graphics g) {
Graphics g2d = (Graphics) g.create();
Faz uma cópia do contexto gráfico para não afetar as demais pinturas.
:arrow: http://pontov.com.br/site/java/48-java2d/93-uma-visao-rapida-sobre-o-java-2d
g2d.dispose();
g.dispose();
Descarta a cópia do contexto gráfico.
:thumbup:
[quote=TerraSkilll]0xFFFFFFF
Seu primeiro código só tem 1 erro, na seguinte linha:
public void paintComponet( Graphics g)
note que falta 1 letra “n”
public void paintComponent( Graphics g)
Fiz a alteração aqui e funcionou. Claro, vale a pena considerar as observações do InicianteJavaHenrique, como usar Java2D, que tem bem mais recursos.
Abraços.[/quote]
Perfeito, erra isso mesmo passou por despercebido aqui.
Obrigado;
@InicianteJavaHenrique
Obrigado;
De nada só falta agora vc colocar [RESOLVIDO] no título.
:thumbup: