Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - theroger

#1
General Programadores / Re:Problema en Java y Graphics
01 de Mayo de 2014, 11:22:47 AM
Hola, gracias por contestar, no el proyecto lo tenia sin s, pero para ponerlo aquí me equivoque.
Mira al final lo he conseguido, estuve leyendo cursos por internet y vi que al ser un JFrame lo tenia que hacer con Canvas y no con JPanel, y con el metodo paint en vez del paintComponent. Así me funciono sin ningún problema. Me funciona bien con public, al igual que con protected.

He estado haciendo cambios en el código y por probar cambie el Canvas por JPanel y el paint por paintComponent y ahora me funciona todo perfecto, ya que los gráficos al mover se ven mejor en el paintComponent que en paint.
#2
General Programadores / Problema en Java y Graphics
28 de Abril de 2014, 11:03:32 AM
Hola, estoy con un programa para la universidad y no consigo que al darle a al botón calcular me dibuje en la zona blanca.
De echo no me ejecuta el método paintComponent y no se porque. Son tres Panel metidos dentro de un Frame, dos Panels se ejecutan al iniciar la aplicación, pero el Panel de dibujar se tiene que ejecutar al darle al botón de calcular. Me interesa que la ZonaGraficaArc() sea una clase porque después le implementare métodos para mover el gráfico con el ratón.

Os pongo el código por si alguien ve el problema.
Gracias.

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

import javax.swing.*;

public class FinestraAppDib extends JFrame implements ActionListener{
private JTextField textField;

JPanel Menu, Dades, DibuixArc;
JButton btnCalcular;

public static void main(String[] args) {
FinestraAppDib frame = new FinestraAppDib();
        frame.setVisible(true);
}

public FinestraAppDib() {

       
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800,600);

Menu = new JPanel();
getContentPane().add(Menu, BorderLayout.NORTH);

Dades = new JPanel();
getContentPane().add(Dades, BorderLayout.WEST);

DibuixArc = new JPanel();
getContentPane().add(DibuixArc, BorderLayout.CENTER);

Menu();
Dades();

}

public void Menu(){
btnCalcular = new JButton("Calcular");
Menu.add(btnCalcular);
btnCalcular.addActionListener(this);

}

public void Dades(){

textField = new JTextField();
Dades.add(textField);
textField.setColumns(10);

}

public void DibuixArc(){

DibuixArc=new ZonaGraficaArc();
DibuixArc.setVisible(true);
repaint();

}


class ZonaGraficaArc extends JPanel{

int offsetX, offsetY;
    boolean dragging;
 
   
    @Override
public void paintComponents(Graphics g) {
   
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.blue);
g2.draw(new Line2D.Double(0, 0, 900, 600));
g.drawLine(900, 600, 0, 0);
System.out.println("Hola paintComponent(Graphics g)");

    }//END paintComponent
   
    ZonaGraficaArc(){
       DibuixArc.setBackground(Color.white);               
       System.out.println("Hola ZonaGraficaArc()");
       DibuixArc.validate();
       repaint();

    }
   
     
}//END ZonaGraficaArc


@Override
public void actionPerformed(ActionEvent e) {
DibuixArc();

}
}





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.