# Hilfe bei Java-Aufgaben



## Sandy (17. Jun 2004)

Hallo.

Ich habe ein großes problem. und zwar studiere ich multimedia wo ich jetzt java als fach bekommen habe. jedoch halten sich meine fortschritte leider in grenzen und langsam bin ich am verzweifeln. denn ich habe jetzt aufgaben vom Professor bekommen die ich, so zu sagen als Teilprüfung, in zwei wochen bei ihm abgeben soll.     da ich aber wie ich schon schrieb noch nicht sehr firm bin, bitte ich euch um HILFE! für euch mögen die aufgaben sicherlich leicht erscheinen aber für mich sind sie sehr schwer...

die erste ist  das zusammenrechnen zweier Vektoren bei denen ich die vektoren eingebe und mir das programm die summe ausgibt.

die zweite ist das malen eines kreises nachdem ich mit der mouse zwei mal in ein rahmen geklickt habe. die klicks sollen der radius bzw durchmesser sein.

die dritte ist ein "fußballtabelle" wie er es nennt. das programm das automatisch eine tabelle erstellt, wenn man einfach die spielergebnisse aller spiele eingibt bei einer manschaftszahl von 6.


bitte bitte kann mir jemand helfen???  :cry:  es wäre wirklich tierisch nett von euch und wirklich wichtig für mich!

vielen dank im voraus...

bye...Sandy...


----------



## Roar (17. Jun 2004)

http://www.java-forum.org/de/viewtopic.php?t=4946

außer für den angegeben stundensatz wird dir hier wohl niemand deine hausaufgaben machen. lies halt ein bisschen: http://www.java-forum.org/de/viewtopic.php?t=245


----------



## Beni (17. Jun 2004)

Wir lösen hier keine Aufgaben, wie helfen nur beim lösen.

Also: ihr steigt ganz schön hoch ein, diese Aufgaben lassen sich wohl am einfachsten mit Swing lösen.

Wenn ich mal so nachdenke, was ich alles für die erste Aufgabe verwenden würde, fällt mir ein:

Hier kann man mit 3 Klassen weit kommen.
Als erstes benötigen wir eine Klasse "Vektor", mit den Methoden setX, setY, setZ und getX, getY, getZ, für die einzelnen Werte.

Dann eine Klasse VektorPanel, welche einen Vektor darstellt.
VektorPanel erbt von JPanel. Es setzt sich selbst ein GridLayout mit 3 Zeilen, und 1 Spalte. Dann fügt es sich 3 JTextFields hinzu, die unter dem Namen textX, textY, textZ als Instanzvariablen gespeichert sind.
Und dann gibt es noch zwei Methoden "setVektor" und "getVektor". Als Pseudocode:



```
public class VektorPanel extends JPanel{
  private JTextField textX = new JTextField();
  private JTextField textY = new JTextField();
  private JTextField textZ = new JTextField();

  public VektorPanel(){
    setLayout( ... );
  }

  public void setVektor( Vektor vektor ){
    textX.setText( String.valueOf( vektor.getX() ));
    ... 
  }

  public void getVektor(){
    double x = Double.parseDouble( textX.getText() );
    ...
    return new Vektor( x, y, z );
  }
}
```


Und dann gibt es noch eine Hauptklasse "Main", die von JFrame erbt. Dem Frame werden 3 VektorPanel's hinzugefügt, der erste Summand, der zweite Summand und das Ergebnis.

Ausserdem ein JButton, dem du einen ActionListener hinzufügst. Sollte der ActionListener aufgerufen werden, ist es an der Zeit die Vektoren zusammenzuzählen, und dem Resultat-Feld zu übergeben.


```
public class Main extends JFrame{
  public Main(){
    ...

    button.addActionListener( new ActionListener(){
      public void actionPerformed( ActionEvent e ){
         Vektor a = vektorPanelA.getVektor();
         Vektor b = vektorPanelB.getVektor();
         resultVektorPanel.setVektor( Vektor.sum( a, b ) );
      }
    });
  }
}
```

Das ist natürlich nur eine Möglichkeit, du kannst was anderes machen.
Und wenn du mal das Prinzip kapiert hast, sind die anderen Aufgaben auch nicht mehr so schwer.

mfg Beni


----------



## Guest (17. Jun 2004)

vielen dank schon mal für die hilfe. ich erkenne eure leistung sehr wohl an, und sicher fühle ich mich nicht richtig wohl dabei wenn ich euch fast vollkommen ahnungslos um hilfe bitte, doch ist es für mich nicht machbar diese aufgaben zu erfüllen, weshalb ich euch um hilfe bitte. ich bemühe mich ja mir java an zu eignen jedoch fällt es mir wie schon beschrieben nicht leicht. ich bitte um euer verständnis...

vielen dank..Sandy...


----------



## P3AC3MAK3R (17. Jun 2004)

Achte beim nächsten Mal bitte auch darauf, das richtige Unterforum zu wählen und einen *aussagekräftigen* Titel zu wählen.


----------



## stev.glasow (17. Jun 2004)

Anonymous hat gesagt.:
			
		

> vielen dank schon mal für die hilfe. ich erkenne eure leistung sehr wohl an, und sicher fühle ich mich nicht richtig wohl dabei wenn ich euch fast vollkommen ahnungslos um hilfe bitte, doch ist es für mich nicht machbar diese aufgaben zu erfüllen, weshalb ich euch um hilfe bitte. ich bemühe mich ja mir java an zu eignen jedoch fällt es mir wie schon beschrieben nicht leicht. ich bitte um euer verständnis...
> 
> vielen dank..Sandy...



So unängenehm wie sich das anhört: Entweder du machst das selber und stellst spezielle Farge oder du bezahlst jemanden dafür, dass er dir das macht. Du musst uns da auch Verstehen.


----------



## Fridolin (17. Jun 2004)

Bekomm ich jetzt ein Bussi?
Wir haben so eine ähnliche Aufgabe in der Schule bekommen, allerdings hab ich das programm allein schreiben und oft im forum andere leute um hilfe bitten müssen, allerdings will ich jetzt ein bussi 

Aufgabe Eins:

```
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Vektor2d extends JFrame implements ActionListener 
{ 
    
   int a; 
   int b; 
   int c;
   int[] zahla = new int[3]; 
   int[] zahlb = new int[3];
   int gcd; 
   JTextField eins; 
   JTextField zwei; 
   JButton skalar; 
   JButton plus; 
   JButton minus; 
   JButton gleich; 
   JButton clear;
   JPanel panel; 
   JPanel text; 
   String antwort = new String(); 
    
   public void seta(int x) 
   { 
   this.a = x; 
   } 
    
   public void setb(int y) 
   { 
   this.b = y; 
   }
    
   public void setc(int z) 
   { 
   this.c = z; 
   } 
   
   public int geta() 
   { 
   return this.a; 
   } 
    
   public int getb() 
   { 
   return this.b; 
   } 
   
   public int getc() 
   { 
   return this.c; 
   } 
    
   public void add(int x, int y, int z, int n) 
   { 
   this.a = x*n + z*y; 
   this.b = y*n; 
   } 
    
   public void subtract(int x, int y, int z, int n) 
   { 
   this.a = x*n - z*y; 
   this.b = y*n; 
   } 
    
   public void skalar(int x, int y, int z, int n) 
   { 
    
   this.a = x*z; 
   this.b = y*n; 
   this.c = this.a + this.b;
   } 
    
   public void clear(JTextField x, JTextField y) 
   { 
   x.setText(""); 
   y.setText(""); 
   } 
    
   public int greatestcommonDivisor(int x, int y) 
   { 
   	   while(x != 0.0) 
       { 
       int temp = y % x; 
       y = x; 
       x = temp; 
       } 
        
       return y;    
   } 
    
   public Vektor2d() 
   { 
    
   MenuBar menuBar = new MenuBar(); 
   Menu menuFile = new Menu(); 
   MenuItem menuFileExit = new MenuItem(); 
        
   menuFile.setLabel("File"); 
   menuFileExit.setLabel("Exit"); 
        
   menuFileExit.addActionListener(new ActionListener() 
   { 
       public void actionPerformed(ActionEvent e) 
       { 
       setVisible(false);
       dispose(); 
       System.exit(0); 
       } 
   }); 
   menuFile.add(menuFileExit); 
   menuBar.add(menuFile); 
    
   Container content = getContentPane(); 
   content.setLayout(new BorderLayout()); 
    
   panel = new JPanel(); 
   panel.setLayout(new FlowLayout()); 
    
   plus = new JButton("+"); 
   plus.addActionListener(this); 
   //plus.setPreferredSize(new Dimension(20,20)); 
   panel.add(plus); 
    
   minus = new JButton("-"); 
   minus.addActionListener(this); 
   //minus.setPreferredSize(new Dimension(20,20)); 
   panel.add(minus); 
    
   gleich = new JButton("="); 
   gleich.addActionListener(this); 
   //gleich.setPreferredSize(new Dimension(20,20)); 
   panel.add(gleich); 
   
   clear = new JButton("C"); 
   clear.addActionListener(this); 
   //clear.setPreferredSize(new Dimension(20,20)); 
   panel.add(clear); 
    
   skalar = new JButton("skalar"); 
   skalar.addActionListener(this); 
   panel.add(skalar); 
   content.add(panel, BorderLayout.NORTH); 
    
   text = new JPanel(); 
   text.setLayout(new BorderLayout()); 
    
   eins = new JTextField(); 
   eins.addKeyListener(new KeyAdapter()
   {
   		public void keyPressed(KeyEvent e33)
   		{
   		
   		int keycode = e33.getKeyCode();
   		if(keycode == KeyEvent.VK_ENTER)
   		{
   		zwei.requestFocus();
   		}
   		
   		}
   });
   text.add(eins, BorderLayout.NORTH); 
    
   zwei = new JTextField(); 
   zwei.addKeyListener(new KeyAdapter()
   {
   		public void keyPressed(KeyEvent e77)
   		{
   		
   		int keycode = e77.getKeyCode();
   		if(keycode == KeyEvent.VK_ENTER)
   		{
   		eins.requestFocus();
   		}
   		
   		}
   });
   text.add(zwei, BorderLayout.SOUTH); 
    
   content.add(text, BorderLayout.SOUTH); 
   
   this.a = 40; 
   this.b = 20; 
   } 
    
   public Vektor2d(int x, int y) 
   { 
       
   MenuBar menuBar = new MenuBar(); 
   Menu menuFile = new Menu(); 
   MenuItem menuFileExit = new MenuItem(); 
        
   menuFile.setLabel("File"); 
   menuFileExit.setLabel("Exit"); 
        
   menuFileExit.addActionListener(new ActionListener() 
   { 
       public void actionPerformed(ActionEvent e) 
       { 
       setVisible(false);
       dispose(); 
       System.exit(0); 
       } 
   }); 
   menuFile.add(menuFileExit); 
   menuBar.add(menuFile); 
    
   Container content = getContentPane(); 
   content.setLayout(new BorderLayout()); 
    
   panel = new JPanel(); 
   panel.setLayout(new FlowLayout()); 
    
   plus = new JButton("+"); 
   plus.addActionListener(this); 
   //plus.setPreferredSize(new Dimension(20,20)); 
   panel.add(plus); 
    
   minus = new JButton("-"); 
   minus.addActionListener(this); 
   //minus.setPreferredSize(new Dimension(20,20)); 
   panel.add(minus); 
    
   gleich = new JButton("="); 
   gleich.addActionListener(this); 
   //gleich.setPreferredSize(new Dimension(20,20)); 
   panel.add(gleich); 
    
   clear = new JButton("C"); 
   clear.addActionListener(this); 
   //clear.setPreferredSize(new Dimension(20,20)); 
   panel.add(clear); 
   
   skalar = new JButton("skalar"); 
   skalar.addActionListener(this); 
   panel.add(skalar); 
   content.add(panel, BorderLayout.NORTH); 
    
   text = new JPanel(); 
   text.setLayout(new BorderLayout()); 
    
   eins = new JTextField(); 
   eins.addKeyListener(new KeyAdapter()
   {
   		public void keyPressed(KeyEvent e33)
   		{
   		
   		int keycode = e33.getKeyCode();
   		if(keycode == KeyEvent.VK_ENTER)
   		{
   		zwei.requestFocus();
   		}
   		
   		}
   }); 
   text.add(eins, BorderLayout.NORTH); 
    
   zwei = new JTextField(); 
   zwei.addKeyListener(new KeyAdapter()
   {
   		public void keyPressed(KeyEvent e77)
   		{
   		
   		int keycode = e77.getKeyCode();
   		if(keycode == KeyEvent.VK_ENTER)
   		{
   		eins.requestFocus();
   		}
   		
   		}
   });
   text.add(zwei, BorderLayout.SOUTH); 
    
   content.add(text, BorderLayout.SOUTH); 
   
   this.a = x; 
   this.b = y; 
   } 
    
   public void actionPerformed(ActionEvent event) 
   { 
   Object quelle = event.getSource();     
    
      if(quelle == plus) 
      { 
      antwort = "+"; 
      
      try 
      { 
      zahla[0] = Integer.parseInt(eins.getText()); 
      zahlb[0] = Integer.parseInt(zwei.getText()); 
       
      seta(zahla[0]); 
      setb(zahlb[0]);
      } 
    
      catch(NumberFormatException e11) 
      { 
      System.out.println("Das war keine Zahl.\n Bitte geben sie erneut ein."); 
      zahla[0] = 0; 
      zahlb[0] = 0; 
       
      seta(zahla[0]); 
      setb(zahlb[0]);
      
      clear(eins, zwei); 
      }
      
      clear(eins, zwei); 
      } 
       
      else if(quelle == minus) 
      { 
      antwort = "-"; 
      
      try 
      { 
      zahla[0] = Integer.parseInt(eins.getText()); 
      zahlb[0] = Integer.parseInt(zwei.getText()); 
       
      seta(zahla[0]); 
      setb(zahlb[0]);
      } 
    
      catch(NumberFormatException e11) 
      { 
      System.out.println("Das war keine Zahl.\n Bitte geben sie erneut ein."); 
      zahla[0] = 0; 
      zahlb[0] = 0; 
       
      seta(zahla[0]); 
      setb(zahlb[0]); 
      
      clear(eins, zwei); 
      } 
      
      clear(eins, zwei); 
      } 
       
      else if(quelle == clear) 
      {
      zahla[2] = 0; 
      zahlb[2] = 0; 
      
      zahla[1] = 0; 
      zahlb[1] = 0; 
          
      zahla[0] = 0; 
      zahlb[0] = 0; 
          
      seta(0); 
      setb(0);
         
      clear(eins, zwei);	 
      }
      
      else if(quelle == skalar) 
      { 
      antwort = "s"; 
      
      try 
      { 
      zahla[0] = Integer.parseInt(eins.getText()); 
      zahlb[0] = Integer.parseInt(zwei.getText()); 
      
      seta(zahla[0]); 
      setb(zahlb[0]);
      } 
    
      catch(NumberFormatException e11) 
      { 
      System.out.println("Das war keine Zahl.\n Bitte geben sie erneut ein."); 
      zahla[0] = 0; 
      zahlb[0] = 0; 
       
      seta(zahla[0]); 
      setb(zahlb[0]); 
      
      clear(eins, zwei); 
      } 
      
      clear(eins,zwei); 
      } 
       
      if(quelle == gleich) 
      { 
          
         try
         {         
         zahla[1] = Integer.parseInt(eins.getText()); 
         zahlb[1] = Integer.parseInt(zwei.getText()); 
      	 }
      	 
      	 catch(NumberFormatException e11) 
         { 
         System.out.println("Das war keine Zahl.\n Bitte geben sie erneut ein."); 
         zahla[1] = 0; 
         zahlb[1] = 0; 
          
         seta(zahla[1]); 
         setb(zahlb[1]); 
          
         zahla[0] = 0; 
         zahlb[0] = 0; 
          
         seta(zahla[0]); 
         setb(zahlb[0]);
         
         clear(eins, zwei); 
         } 
            
           
            if(antwort.equals("+")) 
            { 
            add(zahla[0], zahlb[0], zahla[1], zahlb[1]); 
            
            zahla[2] = geta(); 
            zahlb[2] = getb(); 
            gcd = greatestcommonDivisor(zahla[2], zahlb[2]);
            zahla[2] = geta()/gcd; 
            zahlb[2] = getb()/gcd;
            
            eins.setText(new Integer(zahla[2]).toString()); 
            zwei.setText(new Integer(zahlb[2]).toString()); 
             
               for(int i = 0; i <= 2; i++)    
               { 
               zahla[i] = 0; 
               zahlb[i] = 0; 
               } 
                
            seta(0); 
            setb(0); 
            } 
             
            if(antwort.equals("-")) 
            { 
            subtract(zahla[0], zahlb[0], zahla[1], zahlb[1]); 
            
            zahla[2] = geta(); 
            zahlb[2] = getb(); 
            gcd = greatestcommonDivisor(zahla[2], zahlb[2]);
            zahla[2] = geta()/gcd; 
            zahlb[2] = getb()/gcd;
             
            eins.setText(new Integer(zahla[2]).toString()); 
            zwei.setText(new Integer(zahlb[2]).toString()); 
             
               for(int i = 0; i <= 2; i++)    
               { 
               zahla[i] = 0; 
               zahlb[i] = 0; 
               } 
                
            seta(0); 
            setb(0); 
            } 
             
            if(antwort.equals("s")) 
            { 
            skalar(zahla[0], zahlb[0], zahla[1], zahlb[1]); 
            
            zahla[2] = getc(); 
             
            eins.setText(new Integer(zahla[2]).toString()); 
            zwei.setText("");
            
               for(int i = 0; i <= 2; i++)    
               { 
               zahla[i] = 0; 
               zahlb[i] = 0; 
               } 
                
            seta(0); 
            setb(0); 
            setc(0); 
            } 
             
         } 
          
      } 
          
    
    public static void main(String[] args) 
    { 
        // Create application frame. 
        Vektor2d fridolin = new Vektor2d(); 
        fridolin.setSize(300, 200); 
        fridolin.setLocation(100, 100); 
        fridolin.setTitle("Vektor2d"); 
        fridolin.setVisible(true); 
    } 
}
```

P.S.: Dafür sollte ich jetzt aber ein Bussi bekommen, für dieses schwere programm


----------



## Fridolin (17. Jun 2004)

> ..., und sicher fühle ich mich nicht richtig wohl dabei wenn ich euch fast vollkommen ahnungslos um hilfe bitte, doch ist es für mich nicht machbar diese aufgaben zu erfüllen, weshalb ich euch um hilfe bitte. ich bemühe mich ja mir java an zu eignen jedoch fällt es mir wie schon beschrieben nicht leicht.



lüg nicht das kommt nie gut.


----------



## stev.glasow (17. Jun 2004)

super  :?  codefabrik java-forum.org läßt grüßen.


----------



## Illuvatar (17. Jun 2004)

@Fridolin Ist das gerechtfertigt, nur weil der Nickname Sandy ist / sie Sandy heißt  :



			
				Fridolin hat gesagt.:
			
		

> Bekomm ich jetzt ein Bussi?





			
				Fridolin hat gesagt.:
			
		

> allerdings will ich jetzt ein bussi





			
				Fridolin hat gesagt.:
			
		

> Dafür sollte ich jetzt aber ein Bussi kriegen



@stevg *zustimm*


----------



## Beni (17. Jun 2004)

Applaus für Fridolin

@stevg Du hast trotzdem recht


----------



## Guest (17. Jun 2004)

Na wieso denn nicht? Sie will es eh nicht lernen und ich hab ihr halt eine von drei Aufgaben erfüllt
ich wette sie bringt die restlichen auch nur durch betteln bei ihren klassenkollegen zusammen, viel spaß


----------



## Illuvatar (17. Jun 2004)

Beni hat gesagt.:
			
		

> Applaus für Fridolin


----------



## stev.glasow (17. Jun 2004)

Anonymous hat gesagt.:
			
		

> Na wieso denn nicht? Sie will es eh nicht lernen und ich hab ihr halt eine von drei Aufgaben erfüllt
> ich wette sie bringt die restlichen auch nur durch betteln bei ihren klassenkollegen zusammen, viel spaß


Und wer posten in Zukunft den fertigen Code, du?



			
				Illuvatar hat gesagt.:
			
		

> Beni hat gesagt.:
> 
> 
> 
> > Applaus für Fridolin


Netter Smilie *geklaut*


----------



## Illuvatar (17. Jun 2004)

stevg hat gesagt.:
			
		

> Netter Smilie *geklaut*


LOL, und schon war er auch auf dieser Seite   :applaus:


----------



## Guest (17. Jun 2004)

Ja mir macht das spaß übrigens weißt du warum das Oval von drawOval(int x, int y, int width, int height)
immer die linke kreisfläche des Ovals als anfangspunkt nimmt und nicht einen mittelpunkt und von dem 
aus das Oval mit der breite width/2 zeichnet?


----------



## Guest (17. Jun 2004)

stevg dann lösch den beitrag halt wenn euch der so stört wahrscheinlich hat sies noch nicht einmal gesehen 
ihr letzter beitrag war ja schließlich um 14:50 sie wird sichs von einem anderen holen


----------



## Jaraz (18. Jun 2004)

Fridolin hat gesagt.:
			
		

> Bekomm ich jetzt ein Bussi?
> Wir haben so eine ähnliche Aufgabe in der Schule bekommen, allerdings hab ich das programm allein schreiben und oft im forum andere leute um hilfe bitten müssen, allerdings will ich jetzt ein bussi



Wenn es um Swing gehen würde, könntest du ja vielleicht noch ein Bussi verlangen aber mit objektorientierter Programmierung hat dein Programm leider ziemlich wenig zu tun. 

Wer es drauf anlegt, bekommt solche Standardaufgaben überall her.
2 Vektoren addieren dauert bei google, keine 5 Sekunden.

Gruß Jaraz


----------

