JPanel dynamisch (Koordinatensystem)?

Status
Nicht offen für weitere Antworten.

xdavidx

Aktives Mitglied
Hey,

ich habe mir ein Koordinatensystem in einem JPanel geschrieben!

Alle Berechnungen haben als Grundlage die Breite und Höhe des Panels!

Ich würde nun gerne eine feste Fenstergröße haben zb 600*600 aber innerhalb des Panels 6000*6000!

Also in dem 6000*6000 Raum solll man sich frei bewegen könne:

Beispiel:

http://www.arndt-bruenner.de/mathe/java/plotter.htm#wertetabelle

HAt jemand eine Idee wie ich sowas programmieren kann?

Vlg
 
eine Möglichkeit:
durch die Mausbewegung setzt du irgendwelche Klassenattribute x und y
und im repaint -> paintComponent berücksichtigst du das, malst den Ausschnitt des 6000er Panels, der bei x,y liegt
 
verstehe nicht, was du daran nicht verstehst 😉

und für Code ist das ja nun nicht gerade ein triviales Thema
 
Ich habe in meinem JPanel per setPreferredSize die Größe gesetzt soll ich dort dann einfach auf 6000*6000 ändern? und dann das JPanel in einem 600*600 Frame adden?
 
setPreferredSize ist die angezeigte Größe, die bleibt bei 600,600, falls du nicht gerade ein riesigen JScrollPane verwenden willst

es geht bei meiner Idee nur darum welche 600x600 in paint gezeichnet werden,
das kann man sich bei jedem repaint ja neu aussuchen

normalerweise wird die Mitte oder irgendeine andere Startposititon gezeichnet,
wird mit der Maus nach links bewegt, so führt das zunächst nur dazu, dass x auf -100 steht oder so (aus der Mausbewegung errechnet)
-> beim nächsten repaint dann nicht die Mitte sondern etwas weiter links malen,

das setzt natürlich voraus, dass man in paint einen beliebigen Ausschnitt aus einem größeren Bild malen kann, ordentlich was zu rechnen
 
Achso ok so möchte ich es nicht machen sind mir zu viele Berechnungen!

Ich möchte das Mein Panel schon komplett in dem 6000*6000 Raum gezeichnet ist und dann einfach nur geladen wird!

Ich habe grade das mit dem JScrollPane versucht!

Also JPanel mit 6000*6000 dann in ein ScrollPane verpackt und auf einen Frame gesetzt!

Hm aus irgendwelchen Gründen kommt es zu sehr merkwürdigen Grafikfehlern!
 
jo, du hast mal eben ein Programm mit Fehlern und ich weiß woher sie kommen 😉
ne doch nicht (aber vielleicht wer anders)
 
Ich könnte jetzt ein Testprogramm schreiben, wo ich nichts anderes mache, als ein 6000x6000-JPanel in eine ScrollPane zu packen, und da ein Gitter reinzumalen, und das dann hier posten und dazuschreiben: "Geht doch". Aber warum sollte ich?
 
es ist die einzig sinnvolle Antwort auf die schon von mir als sinnlos bezeichnete Frage 'ich habe irgendein Programm und irgendeinen Fehler, was ist die genaue Lösung/ Korrektur dafür?'
 
Er nähert sich eben an .... :bae:

In meinem Code ist kein Fehler
Was noch zu beweisen wäre.


Evtl. ist ja ein Bug.
Ja. Möglich. Ich habe noch nie ein 6000x6000-JPanel in eine ScrollPane gepackt. Vielleicht gibt es da einen Bug. Dann würde ich dich aber an http://bugs.sun.com/ verweisen.
 
Ja, meistens ihr eigenes Minderwertigkeitsbewußtsein. Aber wie sagte schon Klaus Kinski: "Niveau sieht nur von unten aus wie Arroganz".
 
Ach, was liegt mir dran...
Code:
import javax.swing.*;
import java.awt.*;

class GehtDoch extends JFrame
{
    public static void main(String args[])
    {
        new GehtDoch();
    }


    public GehtDoch()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600,600);
        JPanel panel = new JPanel()
        {
            public void paintComponent(Graphics g)
            {
                super.paintComponent(g);
                g.setColor(Color.BLACK);
                for (int i=0; i<getWidth(); i+=50)
                {
                    g.drawLine(i,0,i,getHeight());
                }
                for (int i=0; i<getHeight(); i+=50)
                {
                    g.drawLine(0,i,getWidth(),i);
                }
                g.setColor(Color.RED);
                for (int i=0; i<getHeight(); i+=75)
                {
                    for (int j=0; j<getWidth(); j+=75)
                    {
                        g.drawString("Geht doch", i, j);
                    }
                }
            }
        };
        panel.setPreferredSize(new Dimension(6000,6000));
        getContentPane().add(new JScrollPane(panel));
        setVisible(true);
    }

}
 
Üblicherweise verzeichte ich ja auf Posts, in denen dieser Smiley vorkommt, aber: Das hab' ich ja gesagt :x !!! Und du hast den Post als "sinnlos" bezeichnet - wenn du nicht sagst, wo dein Problem liegt, kann dir keiner helfen. *kurz überlegt, xdavidx auf die ignorelist zu packen ....*
 
Person A hat ein Problem das aber nicht an der fehlenden Kompetenz liegt.

Person B kommt daher nach dem Motto "Höhö ich kann das weil ich der beste bin aber wieso sollte ich es dir zeigen?"

Person A denkt boah wie sozial Inkompetent Person B ist.

+ Der Output von Person B hat Person A nicht geholfen weil Person A das schon hatte.


Ich will es mir mit niemand verderben aber auf sowas pfeife ich 😛
 
dass dir drei erfahrenere Poster widersprechen und wahrscheinlich so ziemlich alle, die sich die Mühe machen würden,
hat auf deine Einschätzung keinen Einfluss?
 
Marco hätte sich nicht einmischen müssen mit seiner Überheblichkeit.

Ich bin so toll, ich kann's mir erlauben, überheblich zu sein 😎

Person B kommt daher nach dem Motto "Höhö ich kann das weil ich der beste bin aber wieso sollte ich es dir zeigen?"

Ich gehe davon aus, dass das auf mich bezogen ist, und dass das eine bewußte Fehlinterpretation ist, mit der Absicht, mich als überheblich dastehen zu lassen (...) aber bevor ich mich im weiteren aus diesem Thread raushalte, noch die Anmerkung, dass es nicht darum ging, zu sagen, dass "ich das kann" (auch wenn es so ist) und nicht darum, dass ich der beste bin (auch wenn das so ist :wink: ) und auch nicht darum, dir eine funktionierende Lösung DEINES Problems vorzuenthalten, sondern darum, dir deutlich zu machen, dass du mit deiner Aussage "In meinem Code ist kein Fehler" mit an Sicherheit grenzender Wahrschreinlichkeit falsch lagst, und niemand dein Problem nachvollziehen (geschweige denn lösen) können wird, solange man nicht den Fehler in DEINEM Code suchen kann. Wenn du in deinem ersten Beitrag ein compilierbares Stück code gepostet hättest, wo das Problem nachvollziehbar auftritt, dann wäre der zweite Beitrag eine Lösung des Problems gewesen (zumindest, wenn er von mir gewesen wäre 😎 ) und wir hätten uns den ganzen Scheiß-Thread hier gespart.

http://www.java-forum.org/de/viewtopic.php?p=171842&highlight=#171842
http://www.tty1.net/smart-questions_de.html

So. Und jetzt probier' ich vielleicht doch mal das mit der Ignore-List aus....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben