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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Java / 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. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines