Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - theroger

#1
Hola, gracias por contestar.
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.

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
Gracias por contestar tan rápido, no consigo que funcione.
En el código tengo puesto dos System.out.println, solo me sale por consola el de ZonaGraficaArc(), pero el que esta dentro el paintComponent no me sale, es decir que no ejecuta el paintComponent. 
De echo tengo un Applet que funciona perfectamente, pero quiero adaptarlo dentro de este nuevo programa.
#3
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.

Código (java) [Seleccionar]
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 paintComponent(Graphics g) {
   
super.paintComponent(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();

}
}