Olá amigos, no meu código, que estou mostrando abaixo, estou tendo um problema que desconheço como resolver usando a classe Graphics2D.
Graphics2D g2 = new Graphics2D();
Line2D linha = new Line2D.Double(100, 100, 300, 300);
g2.draw(linha);
Tá dando essa exception:
java.awt.Graphics2D is abstract; cannot be instantiated
Graphics2D g2 = new Graphics2D();
^
Desde já agradeço qualquer ajuda. =)
Graphics2D é uma classe abstrata, portanto não se pode instanciar (dá uma olhada na "nomenclatura" do erro).
Tenta isso:
[code]Graphics2D g2 = (Graphics2D) g.create();[/code] */
Onde você colocou esse código?
O desenho com o Graphics deve ser feito nos métodos paintComponent ou paint, não em outros locais. Esses métodos já vão te passar o objeto Graphics2D.
[quote=ViniGodoy]Onde você colocou esse código?
O desenho com o Graphics deve ser feito nos métodos paintComponent ou paint, não em outros locais. Esses métodos já vão te passar o objeto Graphics2D.[/quote]
Eu acho que estou fazendo tudo errado. =X
Olhei um tutorial do seu site mas tb não entendi muito bem.
Eu já tenho uma JFrame com alguns componentes GUI. É neste ambiente que eu quero desenhar uma linha.
Cara, teria como vc me passar um código completo pra desenhar uma simples linha? Fiquei o dia todo tentando mas nada… =(
Desde já agradeço.
Posta o código todo que vc tem até agora.
Este é o código do frame:
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JSlider;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
public class Frame extends JFrame {
JButton m_chegarTremDoLadoEsquerdo = new JButton();
JButton m_chegarTremDoLadoDireito = new JButton();
public Frame() {
setTitle("Comunicação entre Processos");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(800, 600);
setResizable(false);
setVisible(true);
setLayout(null);
m_chegarTremDoLadoEsquerdo.setText("Chegar Trêm do Lado Esquerdo");
m_chegarTremDoLadoEsquerdo.setBounds(0,0,220,20);
m_chegarTremDoLadoEsquerdo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evento) {
new Trem("esquerdo").start();
}});
add(m_chegarTremDoLadoEsquerdo);
m_chegarTremDoLadoDireito.setText("Chegar Trêm do Lado Direito");
m_chegarTremDoLadoDireito.setBounds(220,0,220,20);
m_chegarTremDoLadoDireito.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evento) {
new Trem("direito").start();
}});
add(m_chegarTremDoLadoDireito);
}
}
A reta poderia ser desenhada quando o botão m_chegarTremDoLadoEsquerdo fosse pressionado.
Desde já agradeço.
Ué, e cadê o seu código de desenho?
Não tem cara… Hehe! Eh o q eu estou te pedindo. =)
Tentei de várias formas mas só perdi tempo. =(
Tudo o que eu quero é aprender a desenhar uma simples reta. Sabendo isso o resto eu consigo. =)
\o
Amigo só uma dica tente usar variaveis com nomes mas pequenos ou diretos,
se nao quando voce tiver que dar nome a uma variavel complexa seu nome
vai ficar muito grande:
Ex:
boolean validaSeOperacaoDeInsercaoNoBancoFoiConfirmada;
por
boolean validaInsercao;