import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JLabel label;
int x1, y1, x2, y2;
String dados;
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
c.setLayout(new BorderLayout());
// Cria um JLabel
label = new JLabel();
c.add(label, BorderLayout.CENTER);
// Cria um botão
JButton btn = new
JButton("Desenhar Linhas");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
dados = JOptionPane.showInputDialog("Digite do Eixo X1: ");
x1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y1: ");
y1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo X2: ");
x2 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y2: ");
y2 = Integer.parseInt(dados);
dados="";
desenhaReta(x1,y1,x2,y2);
}
}
);
// Adiciona o botão à janela
c.add(btn, BorderLayout.SOUTH);
setSize(350, 250);
setVisible(true);
}
public void desenhaReta(int x1, int y1, int x2, int y2)
{
float m, b;
int x, y;
Graphics graphics = label.getGraphics();
//Desenha uma reta na horizontal
if (y1 == y2)
{
for (x=x1;x<=x2;x++)
graphics.drawLine(x,y1,x,y1);
}
else
{ // desenha uma reta na vertical
if (x1==x2)
{
for(y=y1;y<=y2;y++)
graphics.drawLine(x1,y,x1,y);
}
if (x1!=x2)
{
m = (y2 - y1) / (x2 - x1);
b = y1 / (m * x1);
for (x=x1; x<=x2; x++)
{
y = Math.round(m*x + b);
graphics.drawLine (x, y, x, y);
}
}
}
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Duvida urgente(JOptionPane)
J
8 Respostas
cara no forum tem a opção [code*] na hora de inserir o codigo, ajuda muito quem esta visualizando...
segue seu codigo
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JLabel label;
int x1, y1, x2, y2;
String dados;
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
c.setLayout(new BorderLayout());
// Cria um JLabel
label = new JLabel();
c.add(label, BorderLayout.CENTER);
// Cria um botão
JButton btn = new
JButton("Desenhar Linhas");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
dados = JOptionPane.showInputDialog("Digite do Eixo X1: ");
x1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y1: ");
y1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo X2: ");
x2 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y2: ");
y2 = Integer.parseInt(dados);
dados="";
desenhaReta(x1,y1,x2,y2);
}
}
);
// Adiciona o botão à janela
c.add(btn, BorderLayout.SOUTH);
setSize(350, 250);
setVisible(true);
}
public void desenhaReta(int x1, int y1, int x2, int y2)
{
float m, b;
int x, y;
Graphics graphics = label.getGraphics();
//Desenha uma reta na horizontal
if (y1 == y2)
{
for (x=x1;x<=x2;x++)
graphics.drawLine(x,y1,x,y1);
}
else
{ // desenha uma reta na vertical
if (x1==x2)
{
for(y=y1;y<=y2;y++)
graphics.drawLine(x1,y,x1,y);
}
if (x1!=x2)
{
m = (y2 - y1) / (x2 - x1);
b = y1 / (m * x1);
for (x=x1; x<=x2; x++)
{
y = Math.round(m*x + b);
graphics.drawLine (x, y, x, y);
}
}
}
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
J
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Helio
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JLabel label;
int x1, y1, x2, y2;
String dados;
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
c.setLayout(new BorderLayout());
// Cria um JLabel
label = new JLabel();
c.add(label, BorderLayout.CENTER);
// Cria um botão
JButton btn = new
JButton("Desenhar Linhas");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
/*
dados = JOptionPane.showInputDialog("Digite do Eixo X1: ");
x1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y1: ");
y1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo X2: ");
x2 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y2: ");
y2 = Integer.parseInt(dados);
dados="";
*/
desenhaReta(10,20,30,40);
}
}
);
// Adiciona o botão à janela
c.add(btn, BorderLayout.SOUTH);
setSize(350, 250);
setVisible(true);
}
public void desenhaReta(int x1, int y1, int x2, int y2)
{
float m, b;
int x, y;
Graphics graphics = label.getGraphics();
//Desenha uma reta na horizontal
if (y1 == y2)
{
for (x=x1;x<=x2;x++)
graphics.drawLine(x,y1,x,y1);
}
else
{ // desenha uma reta na vertical
if (x1==x2)
{
for(y=y1;y<=y2;y++)
graphics.drawLine(x1,y,x1,y);
}
if (x1!=x2)
{
m = (y2 - y1) / (x2 - x1);
b = y1 / (m * x1);
for (x=x1; x<=x2; x++)
{
y = Math.round(m*x + b);
graphics.drawLine (x, y, x, y);
}
}
}
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
[size=12]Mais quando comento o [color=red]JOptionPane [/color]e insiro os dados pela [color=red]desenhaReta(10,20,30,40)[/color]; aparece o segmento reta,
no caso eu queria saber o que está acontecendo de errado quando insiro os dados pelo [color=red] JOptionPane [/color][/size]
Tenta assim velho,
deixa as variaveis x1, y1, x2, y2 como locais no metodo:
public void actionPerformed(ActionEvent e){
int x1, y1, x2, y2 ;
dados = JOptionPane.showInputDialog("Digite do Eixo X1: ");
x1 = Integer.parseInt(dados);
dados = JOptionPane.showInputDialog("Digite do Eixo Y1: ");
y1 = Integer.parseInt(dados);
dados = JOptionPane.showInputDialog("Digite do Eixo X2: ");
x2 = Integer.parseInt(dados);
dados = JOptionPane.showInputDialog("Digite do Eixo Y2: ");
y2 = Integer.parseInt(dados);
desenhaReta(x1, y1, x2, y2 );
}
J
Tentei mais ñ deu certo…alguem tem outra opniãoo!!!
tenta :
public void actionPerformed(ActionEvent e){
int x1=0, y1=0, x2=0, y2=0 ;
dados = JOptionPane.showInputDialog("Digite do Eixo X1: ");
x1 = Integer.parseInt(dados);
dados = JOptionPane.showInputDialog("Digite do Eixo Y1: ");
y1 = Integer.parseInt(dados);
dados = JOptionPane.showInputDialog("Digite do Eixo X2: ");
x2 = Integer.parseInt(dados);
dados = JOptionPane.showInputDialog("Digite do Eixo Y2: ");
y2 = Integer.parseInt(dados);
desenhaReta(x1, y1, x2, y2 );
}
J
tentei mais ñ deu certo
CAra tenta agora...acabei de testar...ele esta gerando um reta...
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
private static final long serialVersionUID = 1L;
private JLabel label;
private int x1, y1, x2, y2;
private String dados;
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
c.setLayout(new BorderLayout());
// Cria um JLabel
label = new JLabel();
c.add(label, BorderLayout.CENTER);
// Cria um botão
JButton btn = new
JButton("Desenhar Linhas");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
dados = JOptionPane.showInputDialog("Digite do Eixo X1: ");
x1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y1: ");
y1 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo X2: ");
x2 = Integer.parseInt(dados);
dados="";
dados = JOptionPane.showInputDialog("Digite do Eixo Y2: ");
y2 = Integer.parseInt(dados);
dados="";
desenhaReta(x1, y1, x2, y2);
}
}
);
// Adiciona o botão à janela
c.add(btn, BorderLayout.SOUTH);
setSize(350, 250);
setVisible(true);
}
public void desenhaReta(int x1, int y1, int x2, int y2)
{
System.out.println(x1+" "+y1+" "+x2+" "+y2);
float m, b;
int x, y;
Graphics graphics = label.getGraphics();
//Desenha uma reta na horizontal
if (y1 == y2)
{
for (x=x1;x<=x2;x++)
graphics.drawLine(x,y1,x,y1);
}
else
{ // desenha uma reta na vertical
if (x1==x2)
{
for(y=y1;y<=y2;y++)
graphics.drawLine(x1,y,x1,y);
}
if (x1!=x2)
{
m = (y2 - y1) / (x2 - x1);
b = y1 / (m * x1);
for (x=x1; x<=x2; x++)
{
y = Math.round(m*x + b);
graphics.drawLine (x, y, x, y);
}
}
}
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Abrasss
J
Testei mais, não deu certo só, aparece alguns segementos de retas…mais não todas…alguem ai tem uma outra opnião
Criado 16 de setembro de 2009
Ultima resposta 17 de set. de 2009
Respostas 8
Participantes 2
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo