# Sinusähnliche Kurve mit Paint zeichnen!



## HaGs (11. Apr 2007)

Hallo an alle,
ich bin Anfänger in der JAVA Programierung, und komme nicht mehr weiter.
Ich habe eine Anwendung programiert die soweit einwandfrei funktioniert. Jetzt bräuchte ich noch eine graphische Darstelleung von Wertepaaren (für X gibt es ein Y-Wert). Nach intensiver suche in diversen Foren habe ich aber trotzdem keine Lösung gefunden.
Ich bringe die "paintComponent(Graphics g)" Methode einfach nicht zum Laufen. Ich habe auch schon probiert mit "println" irgend einen Text anzuzeigen, aber "paintComponent" wird nicht aufgerufen. Dann habe ich in allen Klasse eine paintComponent Methode eingefügt, kein Erfolg.
Habe auch Übungsbeispiele zum Laufen gebracht, nur eben mein Programm nicht.

Wer kann mir weiterhelfen!!??
Hier ein Codeauszug:


```
class LT_Berech9 extends JFrame
{  public static void main(String[] args)
   {  try
      { UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");  }
      catch( Exception e ) { e.printStackTrace(); }
      LT_Berech frame = new LT_Berech();
      frame.Init();
      frame.setLayout(null);
      frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
      frame.setTitle("Längsträger Berechnung nach Föppl ......(V09)");
      Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
      //frame.setLayout(null);
      frame.setBounds(0, (screenSize.height-680)/2, (screenSize.width), 680);
      frame.setVisible(true);
    }//Main Ende
}//class LT_Berech9 Ende

class LT_Berech extends JFrame
{  static Container cp;
   static String ausg_format = "####0.0";
   static double mstb1;
   static String    laf_Java="javax.swing.plaf.metal.MetalLookAndFeel";
   static String laf_Windows="com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
   public void Init()
   {  new Pfade().Prüfen();
      new Pfade().Suchen();
      //
      cp=getContentPane();
      Menu menus = new Menu();
      setJMenuBar(menus.MenuInit());
      new StatusTextArea();
      //
      BerechButton berechnungsButton=new BerechButton();
      berechnungsButton.Init();
      //
      TabbedPInit inputRegister=new TabbedPInit();
      inputRegister.Init();
      cp.add(inputRegister.card);
      //
      new AuflagerCard().Init();
      new PunktLastCard().Init();
      new StreckenLastCard().Init();
      new WerkstoffCard().Init();
      new QuerschnittCard().Init();
      new BerechnungCard().Init();
      new ErgebnisCard().Init();
      new SpeichernCard().Init();
      new PaintTräger().Init();
      //
      PaintGraph pg=new PaintGraph();
      pg.Init();
      cp.add(pg.GraphicPanel);
      //PaintKurve pk=new PaintKurve();
      //pk.PaintKurve();
      //pg.GraphicPanel.add(pk);
      //pk.repaint();
   }
}//Class Ende
............................
............................
class PaintGraph extends JPanel
{  JPanel GraphicPanel= new JPanel();
   int[] dimPanel  ={ 600, 260, 650, 250 };//X, Y, Breie, Höhe
   Graphics gG;
   public void Init()
   {  GraphicPanel.setLayout(null);
      GraphicPanel.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
      GraphicPanel.setBackground(new java.awt.Color(255, 255, 255));
      GraphicPanel.setBounds(dimPanel[0], dimPanel[1], dimPanel[2], dimPanel[3]);
      GraphicPanel.setOpaque(true);
      JButton test = new JButton("Test");
      test.setBounds(10, 15, 100, 55);
      GraphicPanel.add(test);
      GraphicPanel.repaint();
      //
      LT_Berech.cp.add(GraphicPanel);
      gG=GraphicPanel.getGraphics();
      //Component.getGraphics();
      System.out.println("Bin in PaintGraph->Init():"+gG);
   }
   @Override
   public void paintComponent(Graphics g) 
   {  super.paintComponents(g);
      if (isOpaque())
      { //paint background
         g.setColor(getBackground());
         g.fillRect(0, 0, getWidth(), getHeight());
       }
       //System.out.println("Bin in: public void paint( Graphics g )"+g.toString());
       //LT_Berech.cp.paintComponents( g );
       //GraphicPanel.paintComponents( g );
       //Graphics2D g2 = (Graphics2D) g;
       //g.setClip(500,10,200,300);
       //g.translate(500, 80);
       g.setColor(Color.black);
       g.drawLine( 20, 10, 500, 300 ); 
       g.drawLine( 650, 280, 700, 300 );
       g.drawString( "\"Maja, wo bist du?\" (Mittermeier)", 10, 40 );
       System.out.println("Bin in PaintGraph->paintComponents():");
       //
   }
}//Class Ende
```

_Codetags repariert - Wildcard_


----------



## Wildcard (11. Apr 2007)

Wie _intensiv_ deine Suche nun war sei mal dahingestellt  :roll: 
http://www.java-forum.org/de/viewtopic.php?t=46676


----------



## HaGs (11. Apr 2007)

Hallo Wildcard,

danke für Deine Antwort. Mein Problem ist, dass die "paintComponent(Graphics g)" Methode bei mir nicht angesprochen wird, egal in welche Klasse ich sie platziere. Nun ist aber diese Methode für das Zeichnen zuständig!!! Irgendwo ist wahrscheinlich in meinem Codeaufbau der Wurm drin. Andere Codebeispiele aus dem Netz funktionieren nähmlich!!!
Aber wo liegt mein Fehler???????????


----------



## Wildcard (11. Apr 2007)

HaGs hat gesagt.:
			
		

> Irgendwo ist wahrscheinlich in meinem Codeaufbau der Wurm drin. Andere Codebeispiele aus dem Netz funktionieren nähmlich!!!
> Aber wo liegt mein Fehler???????????


Ach je... was ich zu sagen habe willst du wohl nicht hören, aber gut:
Da ist kein Wurm drin, sondern ein Sack voll.
Tatsächlich sind da so viele Fehler und Unschönheiten das ich nichtmal wüsste wo ich anfangen soll.
Deinem Code merkt man an das du eigentlich keine Ahnung hast was du tust, aber munter mit Copy/Paste und Trial&Error drauf los programmierst  :? 
Das einzige was du in dieser Situation tun kannst ist den großen Lösch Knopf zu drücken und dich erstmal eine Weile mit deinem Buch/Tutorial zu beschäftigen.

Nicht persönlich nehmen  :wink:


----------

