Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
zunächst möchte ich sagen, dass ich auf diesem Gebiet der Java-Programmierung neu bin. Manche Fragen werden Euch, erfarenen Programmierern, sicherlich einfach vorkommen.
So, jetzt mein Anliegen:
Ich möchte ein Applet entwickeln, das einen Graphen darstellen kann. Die Darstellung wird durch Eingaben von x-und y-Koordinaten aus Textfeldern ermöglicht. Jetzt möchte ich generell wissen, auf welcher Komponente ich die Grafik darstellen kann. Ich habe mir gedacht "Canvas" aber das Applet besteht aus Swing-Komponenten, deshalb vielleicht nicht von Vorteil. Dann "JPanel", aber weiß nicht ob es überhaupt darauf darzustellen ist.
Die nächste Option, die ich programmieren möchte ist die Möglichkeit, Grafikabschnitte, die mit der Maus markiert wurden, vergrößert darzustellen. Hierbei fehlt mir der Ansatz.
Würde mich freuen wenn Ihr mir hierbei helfen würdet. Danke im Vorraus.
1. ja du kannst auf ein JPanel zeichnen. du muss t dann eine eigene klasse schreiben ( z.B. JGraphPanel) die von JPanel erbt. dann musst du die methode paintComponent() überschreiben, und nicht wie bei AWT paint()
2. zum vergößern: du kannst deinem JPanel einen MouseMotionListener hinzufpgen mit dem du abfängst wenn ein rechteck auf den JPanel selektiert wurde. dann holst du dir die kordinaten und lässt dir daraus ein bild erstellen welches du dann vergrößern kannst. so würde ich das jedenfalls machen. oder du zeichnest den graphen danach ganz neu, aber halt größer....
ich möchte ebenfalls auf einen panel zeichen. bin allerdings anfänger und stelle mich noch etwas duslig an.
hab die panel methode überschireben, allerdings verstehe ich den sinn dahinter nicht ganz so und es funzt auch nicht:
hier mein code:
Code:
class JGraphPanel extends JPanel{
public void paintComponents(Graphics g ){
g.drawLine(2,2,2,2);
}
}
ich möchte jetzt zum beispiel auf einen button drücken und dann die linie darstellen. allerdings müsste ich ja dann ein graphikobjekt übergeben. nur sage ich schon in der methode selber, das eine lini gezeichnet werden soll.
ich hab das gefühl, dass ich völlig auf dem holzweg bin, hat vielleicht jemand eine ahnung, wie ich die methode umschreiben muss oder wie der methodenaufruf gestaltet werden muss???
Glaub schon, aber vielleicht hat schon jemand das Graphics benutzt? (z.B. die update-Methode oder sonst so ein Fiesling der den Hintergrund zeichnet :wink: )
Ich habs nochmal getestet. Es passiert jedoch nichts! Hier noch mal mein Code, wenn du lust hast, kannst es testen!
Code:
public class Applet1 extends Applet {
JGraphPanel jp1 = new JGraphPanel();
....
private void jbInit() throws Exception {
this.setBackground(SystemColor.text);
this.setLayout(null);
jp1.setBounds(new Rectangle(130, 56, 122, 145));
jp1.setBackground(Color.Black);
this.add(jp1, null);
}
}
Und die zugehörige Klasse:
Code:
class JGraphPanel extends JPanel{
public void paintComponents(Graphics g){
g.setColor(Color.RED);
g.drawLine(100,100,100,100);
}
}
Bin mir nicht ganz sicher, welche Parameter für welche Angaben stehen? Ist doch zum einen die Position und zum anderen die Größe, oder? nur in welcher Reihenfolge?
Hm, versuch noch folgendes: anstelle von "paintComponents" (mit s) überschreibst du die Methode "paintComponent" (ohne s). (Beide Methoden existieren, aber sie werden unter verschiedenen Bedingungen aufgerufen).
gibt es vielleicht auch eine Möglichkeit, dass was ich auf dem panel gemalt habe wieder zurück zu nehmen und die methode paintComponent(Graphics g) an einer anderen Stelle neu auf zu rufen?
oder kann man das panel einfach löschen und ein neues erstellen?
oder kann man das panel nur in der jbinit() initalisieren???