Koordinaten von Punkten übergeben und zeichnen lassen

Status
Nicht offen für weitere Antworten.

Cespenar

Mitglied
also das dürfte für euch sicher kein Problem darstellen

ich habe:
- ein von JPanel abgeleitetetes graphicpanel in das ich mittels paintComponent dinge einzeichnen kann
- eine weitere public class in der ein paar jButtons Textfield etc. enthalten und weiterhin eine Berechnung von Werten
stattfindet

durch drücken eines Buttons läuft die Berechnung ab und schreibt die Ergebnisse in ein 2D-Array
Mein Problem:
wie kann ich die Berechneten Werte (Punkte (x,y) ) an paintComponent übergeben (entweder einzeln oder gleich das gesamte Feld)
bzw. wie kann ich überhaupt paintComponent nochmals aufrufen
paintComponent wird ja nur gleich zu beginn aufgerufen und da sind die Werte noch nicht bekannt
------
ich hab´s bisher mit einem Transfer Objekt versucht auf das beide Klassen zugreifen können
die eine Klasse schreibt die Werte rein, die andere liest sie wieder aus
das ginge aber natürlich nur wenn ich die Klasse aufrufen könnte
--------
gibts da keinen einfachen weg der vergleichbar ist mit dem aufrufen von anderen Methoden bei dem ich einfach die Werte übergeben kann ?

schon mal thx
 
B

Beni

Gast
Du speicherst den Array zuerst mal in dem neuen Panel, und dann rufst du "repaint" auf, was schlussendlich zu einem Neuzeichnen des Panels führt:

Code:
public class PaintPanel extends JPanel{
  private int[] xPoints, yPoint;

  public void setPoint( int[] x, int[] y ){
    xPoints = x;
    yPoints = y;

    repaint();
  }

  public void paintComponent( Graphics g ){
    if( xPoints != null ) 
      [...]
  }
}
 

Cespenar

Mitglied
danke das hat mir weiter geholfen aber es geht leider noch nicht

Code:
package SimpleGraphics;

import java.awt.*;
import javax.swing.*;
import javax.swing.JPanel;
import java.awt.Graphics.*;

public class SimpleGraphicsPanel extends JPanel
{
    private int[] PosX,PosY; 
     
     public SimpleGraphicsPanel()
     {
     this.setBackground(Color.white);
     this.setPreferredSize(new Dimension(500,500));
     }

   public void paintComponent(Graphics g)
   {
      int Anzahl=0;
      super.paintComponent(g);
      g.setColor(Color.red);
      if( PosX != null ) 
      {
        for (Anzahl=0;Anzahl<100;Anzahl++)
        {
        g.drawLine(PosX[Anzahl],PosY[Anzahl],PosX[Anzahl],PosY[Anzahl]);
        }
      }
     
    }
   
  public void setPoint( int[] x,int[] y ){
      PosX = x;
      PosY = y;
      repaint();
  } 

}

die setPoint Methode bekommt die Werte aber irgendwie geht das mit dem repaint nicht
vielleicht erkennt ja jemand den Fehler im code
 
B

Beni

Gast
Ich weiss nicht, eine Linie die eine Länge von 0 hat...
Code:
g.drawLine(PosX[Anzahl],PosY[Anzahl],PosX[Anzahl],PosY[Anzahl]);


Wie ist es, wenn du kleine Rechtecke zeichnest:
Code:
g.fillRect(PosX[Anzahl],PosY[Anzahl], 10, 10 );
 

Cespenar

Mitglied
leider liegt es nicht daran
das mit der länge 0 ist nur ein notbehelf da ich keinen Befehl gefunden hab um punkte zu Zeichnen
 
B

Beni

Gast
Hab ich auch nie gefunden, gibt es wohl auch nicht.

Lass mal ein bisschen mehr Code sehen (gerade genug, damit man das Progi laufen lassen kann).
 

Cespenar

Mitglied
Ok ich versuchs mal

Code:
import SimpleGraphics.*;
import javax.swing.*;



public class SimpleGraphicsTest
{

  public SimpleGraphicsTest()
  {
    SimpleGraphicsFrame SGF = new SimpleGraphicsFrame();
    SGF.showIt();
  }
  public static void main(String[] args)
  { 
    SimpleGraphicsTest sgt = new SimpleGraphicsTest();
  }
}

und das hier noch
Code:
package SimpleGraphics;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.*;

public class SimpleGraphicsFrame extends SimpleFrame
{

    
     SimpleGraphicsPanel sgp = new SimpleGraphicsPanel();
     JScrollPane scrolli = new JScrollPane();
     // Panels
     JPanel Hauptdialog = new JPanel();
     JPanel obererHauptdialog = new JPanel();
     JPanel untererHauptdialog = new JPanel();
     // Wichtige Texteingabe Felder
     JTextField B = new JTextField("192");
     JTextField F = new JTextField("24");
     JTextField W = new JTextField("600");
     JTextField S = new JTextField("0.7");
     JLabel StatusInfo = new JLabel("ready",JLabel.CENTER);
     JLabel n = new JLabel("",JLabel.CENTER);
         // JButtons 
     JButton startButton = new JButton("start");
     JScrollPane SgscrP = new JScrollPane(sgp); //Scrollbar anfügen
     
  public SimpleGraphicsFrame()
  {
     // Action Listener initialisieren
     WachHund harras = new WachHund(this);
     
    //unwichtige nicht public Klassen wie Labels etc.  
     JLabel Label1 = new JLabel("B mm");
     JLabel Label2 = new JLabel("F mm");
     JLabel Label3 = new JLabel("W nm");
     JLabel Label4 = new JLabel("S");
     JLabel Label5 = new JLabel("n");
     
    //
     
    Hauptdialog.setLayout(new GridLayout(2,1));
    Hauptdialog.add(obererHauptdialog);
    Hauptdialog.add(untererHauptdialog);
    obererHauptdialog.setLayout(new GridLayout(5,2));
    untererHauptdialog.setLayout(new GridLayout(4,4));
    // Elemente für oberen Hauptdialog
    obererHauptdialog.add(Label1);
    obererHauptdialog.add(B);
    obererHauptdialog.add(Label2);
    obererHauptdialog.add(F);
    obererHauptdialog.add(Label3);
    obererHauptdialog.add(W);
    obererHauptdialog.add(Label4);
    obererHauptdialog.add(S);
    obererHauptdialog.add(Label5);
    obererHauptdialog.add(n);
    // Elemente für unteren Hauptdialog
    untererHauptdialog.add(startButton);
    untererHauptdialog.add(StatusInfo);
    this.setResizable(true);
    this.setTitle("Einfache Graphik");
    this.getContentPane().add(SgscrP,"Center");
    this.getContentPane().add(Hauptdialog,"East");
    // Elemente zu Action Listener hinzufügen
   
   startButton.addActionListener(harras);
    
    pack();
  }
  

    class WachHund implements ActionListener{
    private JFrame parent;

    public WachHund(JFrame p)
    {
      parent = p;
    }

    public void actionPerformed(ActionEvent evt)
     {
      String command = evt.getActionCommand();
      // command enthält jetzt die Beschriftung des gewählten Menüeintrags
      if(command.equals("start"))
      {
          StatusInfo.setText("Berechnung läuft");
          einfacheBerechnung();
      }

    }// method actionPerformed
   }//class WachHund

    public void einfacheBerechnung()
    {
    double f=Double.parseDouble(B.getText())*1E-3; 
    double d=Double.parseDouble(F.getText())*1E-3;; 
    double lambda=Double.parseDouble(W.getText())*1E-9;; 
    double PunktPosX=0; 
    double PunktPosY=0;
    double PunktPosZ=f;
   
    VorschauBerechnung(PunktPosX,PunktPosY,PunktPosZ,f,d,lambda);
     }
    public void VorschauBerechnung(double PunktPosX,double PunktPosY,double PunktPosZ,double f,double d,double lambda)
    {
    SimpleGraphicsPanel sgp = new SimpleGraphicsPanel(); //um auf die andere Klasse zugreifen zu können
    int[] Test1 = {1,2,3};
    int[] Test2 = {4,5,6};
 

        //Berrechnung abgeschlossen
        StatusInfo.setText("Berechnung abgeschlossen");
        //Berechentes Feld and Feldübergabe Funktion übergeben
        sgp.setPoint(Test1,Test2);
    }
}

ich hab natürlich die eigetliche Berechnung der Werte weggelassen, spielt ja hier auch keine Rolle
prinzipiell will ich hier die zwei Felder Test1 und Test2 (Test1 enthält x-Koordinaten und Test2 y-Koordinaten) übergeben und die Punkte zeichnen lassen
 
B

Beni

Gast
Code:
    public void VorschauBerechnung(double PunktPosX,double PunktPosY,double PunktPosZ,double f,double d,double lambda)
    {

    //******************************************************************************************
    // Hier ist das Problem: du stellt ein neues SGP her, welches keinen Bezug zu dem anderen SGP hat...
    // Streich diese Zeile einfach mal raus (zumindest bei dem korpierten Code wurde dann das richtige SGP verwendet.
    SimpleGraphicsPanel sgp = new SimpleGraphicsPanel(); //um auf die andere Klasse zugreifen zu können
    //******************************************************************************************

    int[] Test1 = {1,2,3};
    int[] Test2 = {4,5,6};
 

        //Berrechnung abgeschlossen
        StatusInfo.setText("Berechnung abgeschlossen");
        //Berechentes Feld and Feldübergabe Funktion übergeben
        sgp.setPoint(Test1,Test2);
    }
}

Ach ja, es wird eine ArrayIndexOutOfBoundsException geben, aber das kriegst du schon hin :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Umrechnung Koordinaten zu Winkel Java Basics - Anfänger-Themen 3
J Koordinaten per Schleife ausgeben Java Basics - Anfänger-Themen 6
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
CptK Methoden Koordinaten relativ zur Rotation eines Bildes bestimmen Java Basics - Anfänger-Themen 8
H Koordinaten gehen falsch ! Java Basics - Anfänger-Themen 13
F Koordinaten nach 360° auf 0° setzen Java Basics - Anfänger-Themen 2
F Koordinaten umrechnen Java Basics - Anfänger-Themen 10
S Jbuttons an Koordinaten Java Basics - Anfänger-Themen 33
A Klassen Zahlen einlesen, an Klasse übergeben und Koordinaten ausgeben Java Basics - Anfänger-Themen 1
TheSorm Koordinaten von gedrehten Objekten Java Basics - Anfänger-Themen 4
J Mit Eclipse PLZ in Koordinaten umwandeln und ausgeben Java Basics - Anfänger-Themen 3
A Koordinaten transformieren (Rotation) Java Basics - Anfänger-Themen 4
N Problem bei Koordinaten als int? Java Basics - Anfänger-Themen 6
-horn- Einfache graphische Darstellung von 3D Koordinaten für Flugbahnen? Java Basics - Anfänger-Themen 4
L Koordinaten bestimmen Java Basics - Anfänger-Themen 8
P Erste Schritte Koordinaten Zuweisung Java Basics - Anfänger-Themen 6
Dit_ Ich kenne meine Koordinaten. Wo bin ich? Java Basics - Anfänger-Themen 2
J 2d Koordinaten in Array richtig nutzen Java Basics - Anfänger-Themen 2
F Koordinaten JList darstellen Java Basics - Anfänger-Themen 4
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
T Uhrzeigersinn anhand von Koordinaten Java Basics - Anfänger-Themen 7
K karthesische Koordinaten Java Basics - Anfänger-Themen 3
Luk10 Images und Koordinaten Java Basics - Anfänger-Themen 4
S Koordinaten der Maus wiedergeben Java Basics - Anfänger-Themen 6
M Problem mit Koordinaten - Objekte werden nicht an gewünschter Stelle gezeichnet Java Basics - Anfänger-Themen 6
N Koordinaten aus Area bekommen? Java Basics - Anfänger-Themen 3
Developer_X Kreiskoordinaten in Normale Koordinaten umrechnen Java Basics - Anfänger-Themen 4
W Koordinaten mit System.in.read() setzen Java Basics - Anfänger-Themen 2
M Cursor Koordinaten ändern Java Basics - Anfänger-Themen 4
K Koordinaten von Swing Komponenten Java Basics - Anfänger-Themen 2
T Koordinaten eines Vektor übergeben Java Basics - Anfänger-Themen 21
H Tooltips und Button Koordinaten Java Basics - Anfänger-Themen 2
K Koordinaten eines 2D-Feldes erstellen Java Basics - Anfänger-Themen 4
F Gibt es eine Datenstruktur für Koordinaten x, y? Java Basics - Anfänger-Themen 8
M Mit Koordinaten, JToolTip auf JPanel darstellen Java Basics - Anfänger-Themen 3
S Erste Schritte Zwischen zwei Punkten ein Minimumpkt./Maxima finden Java Basics - Anfänger-Themen 1
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
X JTable mit grünen und roten Punkten Java Basics - Anfänger-Themen 2
B Distanz zwischen zwei Punkten Java Basics - Anfänger-Themen 4
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
A if-Anweisung zwischen zwei Punkten Java Basics - Anfänger-Themen 1
E Berechnung von Punkten Java Basics - Anfänger-Themen 4
D Berechnung des Abstandes von zwei Punkten in einem Koordinatensystem Java Basics - Anfänger-Themen 14
M Länge der Strecke zwischen zwei Punkten Java Basics - Anfänger-Themen 10
H Methoden Array aus Punkten erzeugen, mittels Punkt-Klasse Java Basics - Anfänger-Themen 5
N Winckel zwischen zwei Punkten Java Basics - Anfänger-Themen 9
K Methoden Distanz von 2 Punkten im 2D-Raum Java Basics - Anfänger-Themen 9
Mikescher Winkel zwischen 2 Punkten und der X-Achse Java Basics - Anfänger-Themen 11
B Anzahl von gerundeten Punkten bestimmen Java Basics - Anfänger-Themen 9
B Kürzesten Weg zwischen mehreren Punkten finden (rekursiv) Java Basics - Anfänger-Themen 5
P Abstand zwischen zwei Punkten Java Basics - Anfänger-Themen 4
M spalten in punkten ausfüllen Java Basics - Anfänger-Themen 18
G Kommata in Punkten konvertieren Java Basics - Anfänger-Themen 5
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
S Bildgröße ermitteln & setSize() übergeben Java Basics - Anfänger-Themen 6
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
E Slider - Wert übergeben und überschreiben Java Basics - Anfänger-Themen 5
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
J Wert zwischen JFrames übergeben Java Basics - Anfänger-Themen 2
A Klassen Datei als Kommandozeilenparameter übergeben Java Basics - Anfänger-Themen 8
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
L OOP Parameter mit der Draw-Methode übergeben Java Basics - Anfänger-Themen 11
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
B Objekt an neue Stage übergeben? Java Basics - Anfänger-Themen 9
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
E Methode mit Parametern um Objekte zu übergeben Java Basics - Anfänger-Themen 4
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
H DataOutputStream übergeben Java Basics - Anfänger-Themen 16
B Gefülltes Array wird mit nullwerten übergeben Java Basics - Anfänger-Themen 9
R Variablen Variable an FXML-Controller übergeben Java Basics - Anfänger-Themen 4
E JSF - Radiowerte aus xhtml an Bean übergeben Java Basics - Anfänger-Themen 4
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben