elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Graphics, no consigo ejecutar paintComponent
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Graphics, no consigo ejecutar paintComponent  (Leído 2,872 veces)
theroger

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Graphics, no consigo ejecutar paintComponent
« en: 28 Abril 2014, 11:12 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.

Código
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.awt.geom.*;
  4.  
  5. import javax.swing.*;
  6.  
  7. public class FinestraAppDib extends JFrame implements ActionListener{
  8. private JTextField textField;
  9.  
  10. JPanel Menu, Dades, DibuixArc;
  11. JButton btnCalcular;
  12.  
  13. public static void main(String[] args) {
  14. FinestraAppDib frame = new FinestraAppDib();
  15.         frame.setVisible(true);
  16. }
  17.  
  18. public FinestraAppDib() {
  19.  
  20.  
  21.        setExtendedState(JFrame.MAXIMIZED_BOTH);
  22.        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.        setSize(800,600);
  24.  
  25. Menu = new JPanel();
  26. getContentPane().add(Menu, BorderLayout.NORTH);
  27.  
  28. Dades = new JPanel();
  29. getContentPane().add(Dades, BorderLayout.WEST);
  30.  
  31. DibuixArc = new JPanel();
  32. getContentPane().add(DibuixArc, BorderLayout.CENTER);
  33.  
  34. Menu();
  35. Dades();
  36.  
  37. }
  38.  
  39. public void Menu(){
  40. btnCalcular = new JButton("Calcular");
  41. Menu.add(btnCalcular);
  42. btnCalcular.addActionListener(this);
  43.  
  44. }
  45.  
  46. public void Dades(){
  47.  
  48. textField = new JTextField();
  49. Dades.add(textField);
  50. textField.setColumns(10);
  51.  
  52. }
  53.  
  54. public void DibuixArc(){
  55.  
  56. DibuixArc=new ZonaGraficaArc();
  57. DibuixArc.setVisible(true);
  58. repaint();
  59.  
  60. }
  61.  
  62.  
  63. class ZonaGraficaArc extends JPanel{
  64.  
  65. int offsetX, offsetY;
  66.     boolean dragging;
  67.  
  68.  
  69.     @Override
  70. public void paintComponent(Graphics g) {
  71.  
  72. super.paintComponent(g);
  73. g2.setPaint(Color.blue);
  74. g2.draw(new Line2D.Double(0, 0, 900, 600));
  75. g.drawLine(900, 600, 0, 0);
  76. System.out.println("Hola paintComponent(Graphics g)");
  77.  
  78.    }//END paintComponent
  79.  
  80.     ZonaGraficaArc(){
  81.       DibuixArc.setBackground(Color.white);                
  82.       System.out.println("Hola ZonaGraficaArc()");
  83.       DibuixArc.validate();
  84.       repaint();
  85.  
  86.    }
  87.  
  88.  
  89. }//END ZonaGraficaArc
  90.  
  91.  
  92. @Override
  93. public void actionPerformed(ActionEvent e) {
  94. DibuixArc();
  95.  
  96. }
  97. }


« Última modificación: 1 Mayo 2014, 15:38 pm por simorg » En línea

Zoik

Desconectado Desconectado

Mensajes: 91


Ver Perfil
Re: Graphics, no consigo ejecutar paintComponent
« Respuesta #1 en: 28 Abril 2014, 11:21 am »

Después de darle al botón y poner el panel, prueba a refrescar la interface con:

Código
  1. SwingUtilities.updateComponentTreeUI(TuJFrame);

Comenta si te funciona, un saludo.


En línea

theroger

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Graphics, no consigo ejecutar paintComponent
« Respuesta #2 en: 28 Abril 2014, 11:36 am »

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.
En línea

theroger

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Graphics, no consigo ejecutar paintComponent
« Respuesta #3 en: 1 Mayo 2014, 11:23 am »

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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como consigo hl.exe, para poder ejecutar counter strike v.1.5
Juegos y Consolas
guille_1 1 3,833 Último mensaje 12 Octubre 2004, 03:09 am
por DJ46
cd+graphics
Software
lboechat 1 1,876 Último mensaje 9 Febrero 2005, 05:57 am
por Songoku
Graphics
Programación Visual Basic
CsarGR 2 1,545 Último mensaje 9 Abril 2006, 04:17 am
por G3N3S1S
diferencias entre Procesadores intel con HD Graphics y sin HD Graphics
Hardware
Vjuan_ 6 4,338 Último mensaje 21 Diciembre 2012, 00:12 am
por Aprendiz-Oscuro
Ayuda con paintComponent (g)
Java
portocarrerojava 0 2,007 Último mensaje 6 Diciembre 2015, 03:34 am
por portocarrerojava
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines